summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2018-07-21 18:28:20 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2018-07-21 18:35:40 +0200
commit569d001e979ee0976ee16f5efb53f8b748579727 (patch)
treec3eafe8a6218387cc9fcf6accfb70b9a08ca23fd /kde-apps/dolphin
parentkde-frameworks/kio: Drop 5.48.0 (r0) (diff)
downloadgentoo-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.ebuild92
-rw-r--r--kde-apps/dolphin/files/dolphin-18.04.3-memleak-1.patch36
-rw-r--r--kde-apps/dolphin/files/dolphin-18.04.3-memleak-2.patch37
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