summaryrefslogtreecommitdiff
path: root/kde-apps/dolphin/files/dolphin-18.04.3-memleak-1.patch
blob: 5bbeaa7e617c635aa22e2f149284d9024aea5604 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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