[Kde-pim] Re: Review Request: When processing a parenthesized list, make sure there is enough data

Robert Marmorstein robert at narnia.homeunix.com
Tue Oct 19 09:08:31 BST 2010



> On 2010-10-19 06:18:32, Torgny Nyblom wrote:
> > Hmm, my original review seems to have been lost and only a comment survived... anyway
> > 
> > 
> > Do you have the command that causes the crash? It seems "wrong" to me that we should have to have this workaround in the code as the waiting is done in a previous place.
> > 
> > But great thanks for writing the patch, it certainly highlights a problem and it seems that I'm the only one who do not agree with the solution at this point ;)
> > 
> > /Regards
> > Torgny
> 
> Andras Mantia wrote:
>     What the earlier waiting guarantees is that at least "i" characters are available in the m_data buffer. If m_position > i it might read outside of the buffer's length, so the extra waitForMoreData makes sense. This can happen (i is incremented, if (count == 0) m_position = i ), but of course I can't say just looking at the code what triggers this combination of events, so a test would be welcome.

>From my testing it seemed that the extra incrementing was happening in readLiteralPart().  


- Robert


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/5657/#review8221
-----------------------------------------------------------


On 2010-10-19 06:09:49, Robert Marmorstein wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/5657/
> -----------------------------------------------------------
> 
> (Updated 2010-10-19 06:09:49)
> 
> 
> Review request for KDE PIM, Kevin Krammer and Kevin Ottens.
> 
> 
> Summary
> -------
> 
> I experienced a crash in ImapStreamParser::readParenthesizedList() that was caused by m_position becoming larger than the size of the QByteArray.  I will admit I don't understand this code thorougly, but it looks to me like the correct solution is to use the waitForMoreData function to prevent this from happening, so here is a patch that does that.  Please feel free to be critical -- I would really like to understand this code, so any comments or suggestions will be delightfully accepted as constructive feedback.
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdepimlibs/kimap/imapstreamparser.cpp 1187364 
> 
> Diff: http://svn.reviewboard.kde.org/r/5657/diff
> 
> 
> Testing
> -------
> 
> The imap resource used to crash pretty much every time I started kontact or kmail.  Now it doesn't.  
> 
> 
> Thanks,
> 
> Robert
> 
>

_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list