commit: 63a4598a1ae65384bf49a869b292a90509d96633 Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> AuthorDate: Sat Oct 3 19:09:17 2015 +0000 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> CommitDate: Sat Oct 3 19:09:31 2015 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63a4598a
net-p2p/transmission: Fix segfault Bug: https://bugs.gentoo.org/534308 Package-Manager: portage-2.2.22_p5 .../files/2.84-node_alloc-segfault.patch | 55 ++++++++++++++++++++++ ...-2.84-r2.ebuild => transmission-2.84-r3.ebuild} | 1 + 2 files changed, 56 insertions(+) diff --git a/net-p2p/transmission/files/2.84-node_alloc-segfault.patch b/net-p2p/transmission/files/2.84-node_alloc-segfault.patch new file mode 100644 index 0000000..7172428 --- /dev/null +++ b/net-p2p/transmission/files/2.84-node_alloc-segfault.patch @@ -0,0 +1,55 @@ +Index: libtransmission/list.c +=================================================================== +--- libtransmission/list.c (revision 14318) ++++ libtransmission/list.c (revision 14319) +@@ -30,20 +30,24 @@ + static tr_list* + node_alloc (void) + { +- tr_list * ret; ++ tr_list * ret = NULL; ++ tr_lock * lock = getRecycledNodesLock (); + +- if (recycled_nodes == NULL) ++ tr_lockLock (lock); ++ ++ if (recycled_nodes != NULL) + { +- ret = tr_new (tr_list, 1); +- } +- else +- { +- tr_lockLock (getRecycledNodesLock ()); + ret = recycled_nodes; + recycled_nodes = recycled_nodes->next; +- tr_lockUnlock (getRecycledNodesLock ()); + } + ++ tr_lockUnlock (lock); ++ ++ if (ret == NULL) ++ { ++ ret = tr_new (tr_list, 1); ++ } ++ + *ret = TR_LIST_CLEAR; + return ret; + } +@@ -51,13 +55,15 @@ + static void + node_free (tr_list* node) + { ++ tr_lock * lock = getRecycledNodesLock (); ++ + if (node != NULL) + { + *node = TR_LIST_CLEAR; +- tr_lockLock (getRecycledNodesLock ()); ++ tr_lockLock (lock); + node->next = recycled_nodes; + recycled_nodes = node; +- tr_lockUnlock (getRecycledNodesLock ()); ++ tr_lockUnlock (lock); + } + } + diff --git a/net-p2p/transmission/transmission-2.84-r2.ebuild b/net-p2p/transmission/transmission-2.84-r3.ebuild similarity index 98% rename from net-p2p/transmission/transmission-2.84-r2.ebuild rename to net-p2p/transmission/transmission-2.84-r3.ebuild index 09d42ad..d605c80 100644 --- a/net-p2p/transmission/transmission-2.84-r2.ebuild +++ b/net-p2p/transmission/transmission-2.84-r3.ebuild @@ -75,6 +75,7 @@ src_prepare() { epatch "${FILESDIR}/2.84-miniupnp14.patch" epatch "${FILESDIR}/2.84-libevent-2.1.5.patch" + epatch "${FILESDIR}/2.84-node_alloc-segfault.patch" epatch_user eautoreconf
