From ad61335bf832937dd95739c70405db9b61ffda37 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 11 Dec 2010 11:38:21 +0100 Subject: [PATCH] sort: avoid segfault when using two or more threads This change does not fix the actual bug. That was done by commit c9db0ac6, "sort: preallocate merge tree nodes to heap". The fix was to store each "node" structure on the heap, not on the stack. Otherwise, a node from one thread's stack could be used in another thread after the first thread had expired (via pthread_join). This bug was very hard to trigger when using spinlocks, but easier once we began using mutexes. * NEWS (Bug fixes): Mention it. For details, see http://debbugs.gnu.org/7597. --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 9f55cbb..b0a11b1 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,9 @@ GNU coreutils NEWS -*- outline -*- do no work. I.e., "sort < big-file | less" could waste a lot of power. [bug introduced in coreutils-8.6] + sort with at least two threads no longer segfaults due to use of pointers + into the stack of an expired thread. [bug introduced in coreutils-8.6] + ** New features split accepts the --number option to generate a specific number of files. -- 2.7.4