Review Request 126506: Fix improper destruction of non-virtual KDirModel subclasses

Michael Pyne mpyne at kde.org
Sat Dec 26 05:45:44 UTC 2015


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

(Updated Dec. 26, 2015, 5:45 a.m.)


Review request for KDE Frameworks and David Faure.


Changes
-------

Do the Right Thing(TM) and use a virtual dtor to account for all deletion paths. I concur that it would be API/ABI-compatible.

kdirmodeltest still passes, code still compiles.


Repository: kio


Description
-------

Noted by Coverity (CID 1019869), and could result in a set of
partially-destructed objects. Which, in this case, would probably leak
memory in the event of multiple levels of filesystem hierarchy from the
root KDirModel, but wouldn't cause any worse problems than that.

The 'proper' fix would be to add a virtual dtor at the base class but I
didn't want to add a vtable just for this, so I mirrored the rest of the
code and utilized the fact that item().isDir() is true for all derived
classes.


Diffs (updated)
-----

  src/widgets/kdirmodel.cpp af56a06 

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


Testing
-------

Builds, kdirmodeltest passes.


Thanks,

Michael Pyne

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20151226/33c006c9/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list