Package: arora Version: 0.11.0-1 Severity: normal Tags: patch This bugs has been present for a long time, and I devoted an evening to its analysis and - perhaps - solution.
Compiling with symbols included revealed that the problem appeared in the bookmarks destructor code. I also saw that the bug didn't occur with an empty bookmark list, and that it occurs when stopping a freshly started browser. Armed with a pretty good LACK of knowledge of C++ and Qt library, I tweaked the destructor code to what appeared reasonable in order to avoid a double free condition. The changes seem to have cured the problem, and the bookmark management doesn't seem to have suffered either - deleting a sub-folder works and doesn't crash the browser. So, please forward the patch to the maintainer for validation. -- System Information: Debian Release: jessie/sid APT prefers testing APT policy: (990, 'testing'), (500, 'stable-updates'), (300, 'unstable'), (200, 'stable'), (1, 'experimental') Architecture: i386 (x86_64) Foreign Architectures: amd64 Kernel: Linux 3.11-1-amd64 (SMP w/1 CPU core) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/bash Versions of packages arora depends on: ii libc6 2.17-97 ii libgcc1 1:4.8.2-12 ii libqt4-network 4:4.8.5+git209-g718fae5+dfsg-1 ii libqt4-script 4:4.8.5+git209-g718fae5+dfsg-1 ii libqt4-sql 4:4.8.5+git209-g718fae5+dfsg-1 ii libqtcore4 4:4.8.5+git209-g718fae5+dfsg-1 ii libqtgui4 4:4.8.5+git209-g718fae5+dfsg-1 ii libqtwebkit4 2.2.1-7 ii libstdc++6 4.8.2-12 arora recommends no packages. arora suggests no packages.
diff -rNu arora-git/src/bookmarks/bookmarknode.cpp arora/src/bookmarks/bookmarknode.cpp --- arora-git/src/bookmarks/bookmarknode.cpp 2014-01-20 22:14:59.122745830 +0100 +++ arora/src/bookmarks/bookmarknode.cpp 2014-01-20 21:55:43.068049643 +0100 @@ -73,9 +73,10 @@ BookmarkNode::~BookmarkNode() { + if (m_parent == 0) { return; } + qDeleteAll(m_children); if (m_parent) m_parent->remove(this); - qDeleteAll(m_children); m_parent = 0; m_type = BookmarkNode::Root; }
diff -rNu arora-git/src/bookmarks/bookmarknode.cpp arora/src/bookmarks/bookmarknode.cpp --- arora-git/src/bookmarks/bookmarknode.cpp 2014-01-20 22:14:59.122745830 +0100 +++ arora/src/bookmarks/bookmarknode.cpp 2014-01-20 21:55:43.068049643 +0100 @@ -73,9 +73,10 @@ BookmarkNode::~BookmarkNode() { + if (m_parent == 0) { return; } + qDeleteAll(m_children); if (m_parent) m_parent->remove(this); - qDeleteAll(m_children); m_parent = 0; m_type = BookmarkNode::Root; }