fix use of uninitialized memory with application-provided thread stacks
authorRich Felker <dalias@aerifal.cx>
Fri, 22 Aug 2014 18:05:10 +0000 (14:05 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 30 Mar 2015 05:15:43 +0000 (01:15 -0400)
commit53f270f964ef645a3b6936c336d46f807974175b
treef9b7550fc9f8a06b0ce5a8bb72e52585b6a985d7
parent6f5544ac2ee55f42d86fb661281e499b49c1a51b
fix use of uninitialized memory with application-provided thread stacks

the subsequent code in pthread_create and the code which copies TLS
initialization images to the new thread's TLS space assume that the
memory provided to them is zero-initialized, which is true when it's
obtained by pthread_create using mmap. however, when the caller
provides a stack using pthread_attr_setstack, pthread_create cannot
make any assumptions about the contents. simply zero-filling the
relevant memory in this case is the simplest and safest fix.

(cherry picked from commit a6293285e930dbdb0eff47e29b513ca22537b1a2)
src/thread/pthread_create.c