glibc/sysdeps/nacl
Carlos O'Donell f8bf15febc Bug 20116: Fix use after free in pthread_create()
The commit documents the ownership rules around 'struct pthread' and
when a thread can read or write to the descriptor. With those ownership
rules in place it becomes obvious that pd->stopped_start should not be
touched in several of the paths during thread startup, particularly so
for detached threads. In the case of detached threads, between the time
the thread is created by the OS kernel and the creating thread checks
pd->stopped_start, the detached thread might have already exited and the
memory for pd unmapped. As a regression test we add a simple test which
exercises this exact case by quickly creating detached threads with
large enough stacks to ensure the thread stack cache is bypassed and the
stacks are unmapped. Before the fix the testcase segfaults, after the
fix it works correctly and completes without issue.

For a detailed discussion see:
https://www.sourceware.org/ml/libc-alpha/2017-01/msg00505.html
2017-01-28 19:21:44 -05:00
..
bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_exit.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
access.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
backtrace.c
brk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
chdir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
check_fds.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
chmod.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clock_getres.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clock_gettime.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clock.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
close.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
configure
configure.ac
createthread.c Bug 20116: Fix use after free in pthread_create() 2017-01-28 19:21:44 -05:00
dl-fileid.h Factor file identity rules out of generic rtld code. 2015-07-14 13:15:26 -07:00
dl-map-segments.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-osinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-sysdep-open.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-sysdep.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-unmap-segments.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-writev.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dup2.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dup.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
entry.h
errnos.awk Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
euidaccess.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
exit-thread.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fchdir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fchmod.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fdatasync.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fdopendir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fork.c
fsync.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ftruncate64.c
ftruncate.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
futex-internal.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fxstat64.c
fxstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getcwd.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getdents64.c
getdents.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getdtsz.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gethostname.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getpagesize.c
getpid.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gettimeofday.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
glob64.c
glob.c Make sysdeps/posix bring in login subdir. 2015-07-23 17:04:22 -07:00
ifaddrs.c
Implies
init-first.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
iofdopen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
irt.sed
isatty.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel-features.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ld.abilist ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libanl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libBrokenLocale.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libc-start.c
libcrypt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libdl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libm.abilist Add fromfp functions. 2016-12-31 00:40:59 +00:00
libpthread.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libresolv.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
librt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libutil.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
link.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lll_timedlock_wait.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lll_timedwait_tid.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lowlevellock-futex.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lowlevellock.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lseek64.c
lseek.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lxstat64.c
lxstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mkdir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mmap64.c
mmap.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mprotect.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
munmap.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl_interface_ext_supply.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl_interface_query.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl-after-link.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl-interface-list.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl-interface-table.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl-interfaces.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl-interfaces.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nacl-interfaces.mk.in
nacl-test-wrapper.sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nanosleep.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
open64.c
open.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
preconfigure
profil.c
pthread_condattr_setclock.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pthread-pids.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
read.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readdir64_r.c
readdir64.c
readdir_r.c
readdir.c
readlink.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
rmdir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sched_yield.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
shlib-versions
sigaction.c
sprofil.c
start.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Subdirs
symlink.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tls.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
truncate64.c
truncate.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
uname-values.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
unlink.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
utimes.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Versions NaCl: Implement nacl_interface_ext_supply entry point. 2015-06-03 13:51:11 -07:00
write.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstat64.c
xstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstatconv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstatconv.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00