[Bug 173964] kmail crashes while parsing ~/.procmailrc

George Kiagiadakis gkiagiad at csd.uoc.gr
Sun Nov 16 11:21:37 GMT 2008


http://bugs.kde.org/show_bug.cgi?id=173964


George Kiagiadakis gkiagiad csd uoc gr changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gkiagiad at csd.uoc.gr
         AssignedTo|bugsquad-triage at kde.org     |kdepim-bugs at kde.org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |triaged
            Summary|kmail crashed when local    |kmail crashes while parsing
                   |mailbox added.              |~/.procmailrc




--- Comment #3 from George Kiagiadakis <gkiagiad csd uoc gr>  2008-11-16 12:21:35 ---
This crash is not related to the local mailbox, it is related to parsing your
~/.procmailrc file.
I can't reproduce myself, but l had a look at the code and it seems possible to
have such a crash.

The backtrace says Q_ASSERT was called from:
#12 0xb7aa6d88 in KMail::ProcmailRCParser::processLocalLock (this=0xbfc29f74, 
    s=@0xbfc29ee0) at /usr/include/qt4/QtCore/qstring.h:830

and qstring.h:830 is in QString::operator[]. Having a look at this
processLocalLock() function, it seems possible that it crashes in this code:

  // parse until we find the spoolfile
  QString line, prevLine;
  do {
    prevLine = line;
    line = mStream->readLine().trimmed();
  } while ( !mStream->atEnd() && (line[0] == '*' ||
                                prevLine[prevLine.length() - 1] == '\\' ));

note that prevLine[prevLine.length() - 1] could try to read prevLine[-1] if
length() is 0 (i.e. the previous line is empty), and this assertion in
QString::operator[] tries to ensure that the index is always >= 0

PS: possible temporary workaround: remove all empty lines from ~/.procmailrc :P


-- 
Configure bugmail: http://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Kdepim-bugs mailing list