Review Request 117345: Fix crash in KIO due to exposing inconsistent views of internal data.
Simeon Bird
bladud at gmail.com
Tue Apr 21 01:33:20 BST 2015
> On April 20, 2015, 7:08 a.m., David Faure wrote:
> > Should be committed to kdelibs4 indeed. Preferrably with the unittest improvements that you wrote for KF5.
> >
> > Sorry for the delay before I reviewed it.
No problem - the bug's been there for several years so a few more months won't hurt :)
I'll commit it with the unit test once I've checked it compiles and passes.
- Simeon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/117345/#review79240
-----------------------------------------------------------
On Dec. 19, 2014, 6:50 p.m., Simeon Bird wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/117345/
> -----------------------------------------------------------
>
> (Updated Dec. 19, 2014, 6:50 p.m.)
>
>
> Review request for kdelibs.
>
>
> Repository: kdelibs
>
>
> Description
> -------
>
> Fix crash in KIO due to exposing inconsistent views of internal data.
>
> This can be triggered by renaming a directory while one of the files in it is open in gwenview.
>
> It occurs because when KDirListerCache::emitRedirections is called,
> itemsInUse contains the old url. However, KDirLister::Private::redirect
> changes lstDirs to the new url. Thus at this point lstDirs contains an
> item not in itemsInUse, which causes an assertion if forgetDirs is
> called.
>
> In gwenview, the redirection signal is connected to openURL. This calls
> forgetDirs, and causes the assertion.
>
> The solution: update itemsInUse *before* emitting redirections.
>
> This fixes the crash, but gwenview opens the first file in
> the new directory instead of the file open before renaming.
> This is probably an unrelated gwenview bug.
>
> I wrote this for kdelibs 4, but the code seems unchanged in kdelibs 5.
>
>
> Diffs
> -----
>
> kio/kio/kdirlister.cpp aad6893f47eba81c3f78ed1ca7327adf6fb587bb
>
> Diff: https://git.reviewboard.kde.org/r/117345/diff/
>
>
> Testing
> -------
>
> It fixes the crash! It might break something else.
>
>
> Thanks,
>
> Simeon Bird
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20150421/67438a77/attachment.htm>
More information about the kde-core-devel
mailing list