| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
pthread_attr_setstack() error message.
OK deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement MAP_STACK option for mmap(). Synchronous faults (pagefault and
syscall) confirm the stack register points at MAP_STACK memory, otherwise
SIGSEGV is delivered. sigaltstack() and pthread_attr_setstack() are modified
to create a MAP_STACK sub-region which satisfies alignment requirements.
Observe that MAP_STACK can only be set/cleared by mmap(), which zeroes the
contents of the region -- there is no mprotect() equivalent operation, so
there is no MAP_STACK-adding gadget.
This opportunistic software-emulation of a stack protection bit makes
stack-pivot operations during ROPchain fragile (kind of like removing a
tool from the toolbox).
original discussion with tedu, uvm work by stefan, testing by mortimer
|
|
|
|
|
|
|
|
| |
pthread_exit from libpthread to libc, along with low-level bits to
support them. Major bump to both libc and libpthread.
Requested by libressl team. Ports testing by naddy@
ok kettenis@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This stores errno, the cancelation flags, and related bits for each thread
and is allocated by ld.so or libc.a. This is an ABI break from 5.9-stable!
Make libpthread dlopen'able by moving the cancelation wrappers into libc
and doing locking and fork/errno handling via callbacks that libpthread
registers when it first initializes. 'errno' *must* be declared via
<errno.h> now!
Clean up libpthread's symbol exports like libc.
On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.
Testing by various, particularly sthen@ and patrick@
ok kettenis@
|
|
|
|
|
|
|
| |
references. Use _thread_pagesize for the semaphore mmap size instead of
calling getpagesize() each time.
ok beck@
|
| |
|
|
|
|
| |
rthreads major library bump from last night. okay kettenis@
|
| |
|
|
|
|
| |
guenther@ ok.
|
| |
|
|
|
|
| |
the requested new value
|
|
|
|
| |
Improve consistency of error naming
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
don't try to merge values, round the sizes separately, and don't try to
unmap application-supplied stacks.
Copy from uthread the caching of default-sized stacks.
Have pthread_attr_init() and pthread_create() get the default attributes
from staticly allocated pthread_attr_t.
Cache the pagesize in _rthread_init() and provide a macro for rounding to it
based on suggestions from kettenis@ and tedu@, ok kettenis@
|
|
|
|
|
|
| |
so that their pthread_attr_get* don't return bogus values.
issue noted and tested by aja@
|
| |
|
|
|
|
| |
"look good" tedu@
|
|
|
|
| |
and check user stack for proper alignment. ok tedu@ marc@
|
|
|
|
|
|
| |
Minor tweaks to compile with the above, primarily in fixing
the conflicts between semaphore.h and rthread.h
"i like the additional warnings" tedu@
|
|
|
|
|
| |
do not allow a join to a detached thread
"it looks good" otto@
|
|
|
|
|
|
|
|
| |
size (and guard zone size) to be set using pthread_attr. Guard
zones are specified in bytes, but implemented in terms of a
page size.
OK Otto@
|
|
|
|
|
| |
With this, java seems to be operational. Also make threads_ready
non-static, which is needed for an upcoming diff. ok tedu@
|
| |
|
|
|
|
| |
add pthread_get/set_stack[addr] (info not used yet)
|
|
|