diff options
author | Jim Meyering <meyering@redhat.com> | 2010-12-11 11:38:21 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2010-12-11 11:52:24 +0100 |
commit | ad61335bf832937dd95739c70405db9b61ffda37 (patch) | |
tree | b92774a80152f1fe3afe65cbddd50a2cb3295d69 | |
parent | 9a9d69e9e463ebfa67e90ecc061305532a91543e (diff) | |
download | coreutils-ad61335bf832937dd95739c70405db9b61ffda37.tar.xz |
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.
-rw-r--r-- | NEWS | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -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. |