Date: Sun, 9 Jan 2011 12:38:40 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/lib/libthr pthread.map src/lib/libthr/thread thr_create.c thr_private.h thr_rtld.c thr_stack.c Message-ID: <201101091238.p09Ccs5L012983@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
kib 2011-01-09 12:38:40 UTC FreeBSD src repository Modified files: lib/libthr pthread.map lib/libthr/thread thr_create.c thr_private.h thr_rtld.c thr_stack.c Log: SVN rev 217191 on 2011-01-09 12:38:40Z by kib Implement the __pthread_map_stacks_exec() for libthr. Stack creation code is changed to call _rtld_get_stack_prot() to get the stack protection right. There is a race where thread is created during dlopen() of dso that requires executable stacks. Then, _rtld_get_stack_prot() may return PROT_READ | PROT_WRITE, but thread is still not linked into the thread list. In this case, the callback misses the thread stack, and rechecks the required protection afterward. Reviewed by: davidxu Revision Changes Path 1.41 +2 -0 src/lib/libthr/pthread.map 1.50 +11 -0 src/lib/libthr/thread/thr_create.c 1.120 +1 -0 src/lib/libthr/thread/thr_private.h 1.16 +5 -0 src/lib/libthr/thread/thr_rtld.c 1.9 +34 -1 src/lib/libthr/thread/thr_stack.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101091238.p09Ccs5L012983>