Review Request 117701: Fix crashers in KStartupInfo on remove while iterating
Thomas Lübking
thomas.luebking at gmail.com
Wed Apr 23 13:03:44 UTC 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/117701/#review56269
-----------------------------------------------------------
src/kstartupinfo.cpp
<https://git.reviewboard.kde.org/r/117701/#comment39336>
this function is so ugly that i wonder whether removal by value is actually required at all and in case it should try to find the iterator and use that in case of success - instead of the ugly ::operator[] ;-)
src/kstartupinfo.cpp
<https://git.reviewboard.kde.org/r/117701/#comment39334>
this is somehow not equivalent to the other variant (ignores silent/uninited) - the iterator should perhaps go with a map pointer/reference to stress this (and as a matching map usage is required anyway)
src/kstartupinfo.cpp
<https://git.reviewboard.kde.org/r/117701/#comment39335>
ahhh... this one's the (semi-)obvious crasher =)
(I had first only seen the other loops, which looked pretty harmless)
Though i had assumed that the non-const iterator would have detached the list anyway.
- Thomas Lübking
On April 23, 2014, 9:35 a.m., Martin Gräßlin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/117701/
> -----------------------------------------------------------
>
> (Updated April 23, 2014, 9:35 a.m.)
>
>
> Review request for KDE Frameworks, Àlex Fiestas and Bhushan Shah.
>
>
> Bugs: 332681
> https://bugs.kde.org/show_bug.cgi?id=332681
>
>
> Repository: kwindowsystem
>
>
> Description
> -------
>
> Fix crashers in KStartupInfo on remove while iterating
>
> This is similar to the change ... just for more cases. If the API was
> used with ::checkStartup it could happen that an item got removed from
> the startups while iterating the list of startups. Thus the data
> corrupted resulting in a crash when getting a similar crash.
>
> In this case the code now uses erase instead of remove to have a valid
> iterator.
>
> BUG: 332681
>
>
> Diffs
> -----
>
> autotests/kstartupinfo_unittest.cpp 29fa320bc2c82e7e04a7322111bcdba44b7078c6
> src/kstartupinfo.cpp 6a95ce2d2eb79abbfbd072fa922f458da30d37eb
>
> Diff: https://git.reviewboard.kde.org/r/117701/diff/
>
>
> Testing
> -------
>
> See new unit tests which crash without the change. For people wanting to run the test: be warned it has the power to crash plasma-shell and kwin.
>
>
> Thanks,
>
> Martin Gräßlin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140423/08ccdcf8/attachment.html>
More information about the Kde-frameworks-devel
mailing list