Review Request 121599: Fix crash in KIO due to exposing inconsistent views of internal data.

Simeon Bird bladud at gmail.com
Tue Apr 21 00:24:00 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121599/
-----------------------------------------------------------

(Updated April 21, 2015, 12:24 a.m.)


Status
------

This change has been marked as submitted.


Review request for KDE Frameworks, Aleix Pol Gonzalez and David Faure.


Changes
-------

Submitted with commit 8caba90e52c40656e540447340e5f1bdde8ce82c by Simeon Bird to branch master.


Repository: kio


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.

This is the same as reviewboard 117345, but on the KF5 kio repository and with a test case.

While I was doing this I also fixed a minor bug in the test suite (which is a separate commit).


Diffs
-----

  autotests/kdirlistertest.h 70fd16f 
  autotests/kdirlistertest.cpp b588e5b 
  src/core/kcoredirlister.cpp f5c5627 

Diff: https://git.reviewboard.kde.org/r/121599/diff/


Testing
-------

Tests run


Thanks,

Simeon Bird

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150421/a5a70f3a/attachment.html>


More information about the Kde-frameworks-devel mailing list