[prev in list] [next in list] [prev in thread] [next in thread]
List: kmail-devel
Subject: [Bug 61213] Crash when selecting old messages
From: Don Sanders <sanders () kde ! org>
Date: 2003-07-21 6:10:16
[Download RAW message or body]
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=61213
sanders@kde.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
------- Additional Comments From sanders@kde.org 2003-07-21 08:10 -------
Subject: Re: Crash when selecting old messages
On Monday 21 July 2003 03:30, Martin Hignett wrote:
...
> A quick look at line 500 in kmfoldermaildir.cpp reveals that a file
> handle is being used wiithout first checking if its valid. A
> simple if( stream != NULL ) sanity check should stop the crash.
> I changed the code to the following:
>
> if (QFile::exists(abs_file))
> {
> FILE* stream = fopen(abs_file.local8Bit(), "r+");
> if( stream != NULL )
> {
> DwString str( stream, mi->msgSize() );
> fclose( stream );
> return str;
> }
> else
> {
> kdDebug( ) << "Could not open file" << abs_file << endl;
> }
>
> And got the following output in stderr:
>
> <...>
> kmail: Could not open
> file/home/martin/Mail/inbox/cur/1029260564.1016.jTMR:2,S kmail:
> (621, last 620)
> kmail: set Msg, force = false
> ASSERT: debug output not ended with \n
>
> That file exists, but with read only permisions, so that would
> appear to be the problem! An ideal solution would be to fix the
> problem either automaticaly or with user confirmation.
Thanks a lot for that fix, it's very kind.
I submitted the following form of it:
DwString KMFolderMaildir::getDwString(int idx)
{
KMMsgInfo* mi = (KMMsgInfo*)mMsgList[idx];
QString abs_file(location() + "/cur/");
abs_file += mi->fileName();
QFileInfo fi( abs_file );
if (fi.exists() && fi.isFile() && fi.isWritable())
{
FILE* stream = fopen(abs_file.local8Bit(), "r+");
DwString str( stream, mi->msgSize() );
fclose( stream );
return str;
}
kdDebug(5006) << "Could not open file r+" << abs_file << endl;
return DwString();
}
Please tell me if that doesn't work for you.
Don.
------- Additional Comments From sanders@kde.org 2003-07-21 08:10 -------
Subject: Re: Crash when selecting old messages
On Monday 21 July 2003 03:30, Martin Hignett wrote:
...
> A quick look at line 500 in kmfoldermaildir.cpp reveals that a file
> handle is being used wiithout first checking if its valid. A
> simple if( stream != NULL ) sanity check should stop the crash.
> I changed the code to the following:
>
> if (QFile::exists(abs_file))
> {
> FILE* stream = fopen(abs_file.local8Bit(), "r+");
> if( stream != NULL )
> {
> DwString str( stream, mi->msgSize() );
> fclose( stream );
> return str;
> }
> else
> {
> kdDebug( ) << "Could not open file" << abs_file << endl;
> }
>
> And got the following output in stderr:
>
> <...>
> kmail: Could not open
> file/home/martin/Mail/inbox/cur/1029260564.1016.jTMR:2,S kmail:
> (621, last 620)
> kmail: set Msg, force = false
> ASSERT: debug output not ended with \n
>
> That file exists, but with read only permisions, so that would
> appear to be the problem! An ideal solution would be to fix the
> problem either automaticaly or with user confirmation.
Thanks a lot for that fix, it's very kind.
I submitted the following form of it:
DwString KMFolderMaildir::getDwString(int idx)
{
KMMsgInfo* mi = (KMMsgInfo*)mMsgList[idx];
QString abs_file(location() + "/cur/");
abs_file += mi->fileName();
QFileInfo fi( abs_file );
if (fi.exists() && fi.isFile() && fi.isWritable())
{
FILE* stream = fopen(abs_file.local8Bit(), "r+");
DwString str( stream, mi->msgSize() );
fclose( stream );
return str;
}
kdDebug(5006) << "Could not open file r+" << abs_file << endl;
return DwString();
}
Please tell me if that doesn't work for you.
Don.
_______________________________________________
KMail Developers mailing list
kmail@mail.kde.org
http://mail.kde.org/mailman/listinfo/kmail
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic