diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-07-21 18:28:20 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-07-21 18:35:40 +0200 |
commit | 569d001e979ee0976ee16f5efb53f8b748579727 (patch) | |
tree | c3eafe8a6218387cc9fcf6accfb70b9a08ca23fd /kde-apps/dolphin | |
parent | kde-frameworks/kio: Drop 5.48.0 (r0) (diff) | |
download | gentoo-569d001e979ee0976ee16f5efb53f8b748579727.tar.gz gentoo-569d001e979ee0976ee16f5efb53f8b748579727.tar.bz2 gentoo-569d001e979ee0976ee16f5efb53f8b748579727.zip |
kde-apps/dolphin: Fix memleaks
Package-Manager: Portage-2.3.43, Repoman-2.3.10
Diffstat (limited to 'kde-apps/dolphin')
-rw-r--r-- | kde-apps/dolphin/dolphin-18.04.3-r1.ebuild | 92 | ||||
-rw-r--r-- | kde-apps/dolphin/files/dolphin-18.04.3-memleak-1.patch | 36 | ||||
-rw-r--r-- | kde-apps/dolphin/files/dolphin-18.04.3-memleak-2.patch | 37 |
3 files changed, 165 insertions, 0 deletions
diff --git a/kde-apps/dolphin/dolphin-18.04.3-r1.ebuild b/kde-apps/dolphin/dolphin-18.04.3-r1.ebuild new file mode 100644 index 000000000000..030c7e78bf3c --- /dev/null +++ b/kde-apps/dolphin/dolphin-18.04.3-r1.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +KDE_HANDBOOK="forceoptional" +KDE_TEST="true" +VIRTUALX_REQUIRED="test" +inherit kde5 + +DESCRIPTION="Plasma filemanager focusing on usability" +HOMEPAGE="https://www.kde.org/applications/system/dolphin https://userbase.kde.org/Dolphin" +KEYWORDS="~amd64 ~x86" +IUSE="semantic-desktop thumbnail" + +DEPEND=" + $(add_frameworks_dep kbookmarks) + $(add_frameworks_dep kcmutils) + $(add_frameworks_dep kcodecs) + $(add_frameworks_dep kcompletion) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kcrash) + $(add_frameworks_dep kdbusaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kinit) + $(add_frameworks_dep kio) + $(add_frameworks_dep kitemviews) + $(add_frameworks_dep kjobwidgets) + $(add_frameworks_dep knewstuff) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep kparts) + $(add_frameworks_dep kservice) + $(add_frameworks_dep ktextwidgets) + $(add_frameworks_dep kwidgetsaddons) + $(add_frameworks_dep kxmlgui) + $(add_frameworks_dep solid) + $(add_qt_dep qtconcurrent) + $(add_qt_dep qtdbus) + $(add_qt_dep qtgui) + $(add_qt_dep qtwidgets) + $(add_qt_dep qtxml) + media-libs/phonon[qt5(+)] + semantic-desktop? ( + $(add_frameworks_dep baloo) + $(add_frameworks_dep kfilemetadata) + $(add_kdeapps_dep baloo-widgets) + ) + !semantic-desktop? ( + $(add_frameworks_dep kdelibs4support) + ) +" +RDEPEND="${DEPEND} + $(add_kdeapps_dep kio-extras) + thumbnail? ( + $(add_kdeapps_dep ffmpegthumbs) + $(add_kdeapps_dep thumbnailers) + ) +" + +RESTRICT+=" test" + +PATCHES=( + "${FILESDIR}"/${PN}-18.04.1-flto.patch + "${FILESDIR}"/${P}-root-user.patch + "${FILESDIR}"/${P}-root-warn.patch + "${FILESDIR}"/${P}-memleak-{1,2}.patch +) + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package semantic-desktop KF5Baloo) + $(cmake-utils_use_find_package semantic-desktop KF5BalooWidgets) + $(cmake-utils_use_find_package semantic-desktop KF5FileMetaData) + ) + + kde5_src_configure +} + +pkg_postinst() { + kde5_pkg_postinst + + if ! has_version "kde-apps/ark:${SLOT}" ; then + elog "For compress/extract and other actions, please install kde-apps/ark:${SLOT}" + fi + + if ! has_version "kde-apps/kleopatra:${SLOT}" ; then + elog "For crypto actions, please install kde-apps/kleopatra:${SLOT}" + fi +} diff --git a/kde-apps/dolphin/files/dolphin-18.04.3-memleak-1.patch b/kde-apps/dolphin/files/dolphin-18.04.3-memleak-1.patch new file mode 100644 index 000000000000..5bbeaa7e617c --- /dev/null +++ b/kde-apps/dolphin/files/dolphin-18.04.3-memleak-1.patch @@ -0,0 +1,36 @@ +From 4536e25ac929d8d37ffbbba0642de662bcc9f891 Mon Sep 17 00:00:00 2001 +From: David Hallas <david@davidhallas.dk> +Date: Wed, 18 Jul 2018 23:20:18 +0200 +Subject: Fixes memory leak in KItemListViewAccessible + +Summary: The KItemListViewAccessible class has a list of QAccessibleInterface pointers in a member variable m_cells. The problem is that when new entries are created, the newly allocated pointer is not stored in the list, only a nullptr is store, this renders the cleanup code in the destructor useless. This patch simply stores the pointer in the list, causing the destructor to correctly free the memory. + +Test Plan: I found this issue using address sanitizer. Simply building Dolphin with -fsanitize=address and opening a window caused the memory leak. + +Reviewers: #dolphin, jtamate, elvisangelaccio + +Reviewed By: #dolphin, jtamate, elvisangelaccio + +Subscribers: elvisangelaccio, kfm-devel + +Tags: #dolphin + +Differential Revision: https://phabricator.kde.org/D14168 +--- + src/kitemviews/kitemlistviewaccessible.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/kitemviews/kitemlistviewaccessible.cpp b/src/kitemviews/kitemlistviewaccessible.cpp +index 69c126f..4d1b28b 100644 +--- a/src/kitemviews/kitemlistviewaccessible.cpp ++++ b/src/kitemviews/kitemlistviewaccessible.cpp +@@ -78,6 +78,7 @@ QAccessibleInterface* KItemListViewAccessible::cell(int index) const + QAccessibleInterface* child = m_cells.at(index); + if (!child) { + child = new KItemListAccessibleCell(view(), index); ++ m_cells.insert(index, child); + QAccessible::registerAccessibleInterface(child); + } + return child; +-- +cgit v0.11.2 diff --git a/kde-apps/dolphin/files/dolphin-18.04.3-memleak-2.patch b/kde-apps/dolphin/files/dolphin-18.04.3-memleak-2.patch new file mode 100644 index 000000000000..f39885bdca36 --- /dev/null +++ b/kde-apps/dolphin/files/dolphin-18.04.3-memleak-2.patch @@ -0,0 +1,37 @@ +From 2cbf3cb11ea668577121fa755c1ddacc6f0acdd8 Mon Sep 17 00:00:00 2001 +From: David Hallas <david@davidhallas.dk> +Date: Wed, 18 Jul 2018 16:43:25 -0600 +Subject: Fixes small memory leak in DolphinContextMenu + +Summary: When DolphinContextMenu::baseFileItem is called a KFileItem is allocated and stored in DolphinContextMenu::m_baseFileItem, which is of type KFileItem*, but the destructor failed to delete this. + +Test Plan: This leak was found using Address Sanitizer + +Reviewers: broulik, elvisangelaccio + +Reviewed By: broulik, elvisangelaccio + +Subscribers: ngraham, kfm-devel + +Tags: #dolphin + +Differential Revision: https://phabricator.kde.org/D14178 +--- + src/dolphincontextmenu.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp +index 7d7d7a4..8fdaab1 100644 +--- a/src/dolphincontextmenu.cpp ++++ b/src/dolphincontextmenu.cpp +@@ -81,6 +81,8 @@ DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent, + + DolphinContextMenu::~DolphinContextMenu() + { ++ delete m_baseFileItem; ++ m_baseFileItem = nullptr; + delete m_selectedItemsProperties; + m_selectedItemsProperties = nullptr; + } +-- +cgit v0.11.2 |