Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | make malloc(0) return unique pointers rather than NULL | Rich Felker | 2011-02-20 | 2 | -6/+10 |
| | | | | | | | this change is made with some reluctance, but i think it's for the best. correct programs must handle either behavior, so there is little advantage to having malloc(0) return NULL. and i managed to actually make the malloc code slightly smaller with this change. | ||||
* | fix simple_malloc malloc(0) behavior not to return non-unique pointers | Rich Felker | 2011-02-20 | 1 | -0/+1 |
| | |||||
* | fix simple_malloc size restrictions | Rich Felker | 2011-02-20 | 1 | -5/+6 |
| | | | | | | do not allow allocations that overflow ptrdiff_t; fix some overflow checks that were not quite right but didn't matter due to address layout implementation. | ||||
* | fix null pointer dereference introduced in last sigprocmask commit | Rich Felker | 2011-02-20 | 1 | -1/+1 |
| | |||||
* | make real symbols for the legacy (nonstandardized) utmp functions | Rich Felker | 2011-02-20 | 1 | -0/+8 |
| | | | | | | | this is needed in the long term for ABI compatibility anyway, and in the immediate, it helps with building broken programs like GNU screen that try to prototype the functions themselves rather than using the header. | ||||
* | workaround gcc bug 46926 by providing a dumb sincos implementation | Rich Felker | 2011-02-19 | 1 | -0/+8 |
| | | | | | | note that this library itself is built with -ffreestanding so sincos.c should not be miscompiled even if the gcc used to compile musl has this bug. | ||||
* | use rt_sigprocmask, not legacy sigprocmask, syscall in pthread exit code | Rich Felker | 2011-02-19 | 1 | -1/+1 |
| | |||||
* | implement the remaining clock_* interfaces | Rich Felker | 2011-02-19 | 5 | -0/+36 |
| | |||||
* | race condition fix: block all signals before decrementing thread count | Rich Felker | 2011-02-19 | 3 | -22/+2 |
| | | | | | | | | | | | | the existence of a (kernelspace) thread must never have observable effects after the thread count is decremented. if signals are not blocked, it could end up handling the signal for rsyscall and contributing towards the count of threads which have changed ids, causing a thread to be missed. this could lead to one thread retaining unwanted privilege level. this change may also address other subtle race conditions in application code that uses signals. | ||||
* | prevent sigprocmask/pthread_sigmask from blocking implementation signals | Rich Felker | 2011-02-19 | 1 | -3/+5 |
| | | | | | | this code was wrongly disabled because the old version was trying to be too clever and didn't work. replaced it with a simple version for now. | ||||
* | make pthread_exit run dtors for last thread, wait to decrement thread count | Rich Felker | 2011-02-19 | 1 | -3/+3 |
| | |||||
* | make mktemp match the historic behavior, and update functions that use it | Rich Felker | 2011-02-19 | 3 | -5/+8 |
| | | | | | | the historic mktemp is supposed to blank the template string on failure, rather than returning 0. just zero the first character so that mkstemp and mkdtemp can still retry with O(1) space requirement. | ||||
* | fix major bug created from copying mkdtemp logic | Rich Felker | 2011-02-19 | 1 | -1/+1 |
| | |||||
* | add syscall wrappers for inotify | Rich Felker | 2011-02-19 | 4 | -0/+28 |
| | |||||
* | cleanup cruft left from when kernel and user time_t disagreed | Rich Felker | 2011-02-19 | 2 | -12/+3 |
| | |||||
* | add pthread_atfork interface | Rich Felker | 2011-02-18 | 3 | -3/+55 |
| | | | | | | | | | note that this presently does not handle consistency of the libc's own global state during forking. as per POSIX 2008, if the parent process was threaded, the child process may only call async-signal-safe functions until one of the exec-family functions is called, so the current behavior is believed to be conformant even if non-ideal. it may be improved at some later time. | ||||
* | major improvements to temp file name generator | Rich Felker | 2011-02-18 | 3 | -16/+21 |
| | | | | | | | | use current time in nanoseconds and some potentially-random (if aslr is enabled) pointer values for the initial tempfile name generation, and step via a cheap linear prng on collisions. limit the number of retry attempts to prevent denial of service attacks even if an attacker can guess the filenames. | ||||
* | reformat mkstemp like mkdtemp | Rich Felker | 2011-02-18 | 1 | -7/+5 |
| | | | | | this is cleaner and makes it easy to impose a limit on the number of retries later if it seems desirable to do so. | ||||
* | add portable lchown (trivial to support and a few ancient things want it..) | Rich Felker | 2011-02-17 | 1 | -0/+7 |
| | |||||
* | reorganize pthread data structures and move the definitions to alltypes.h | Rich Felker | 2011-02-17 | 24 | -83/+102 |
| | | | | | | | | this allows sys/types.h to provide the pthread types, as required by POSIX. this design also facilitates forcing ABI-compatible sizes in the arch-specific alltypes.h, while eliminating the need for developers changing the internals of the pthread types to poke around with arch-specific headers they may not be able to test. | ||||
* | make daemon try the operations that might fail before fork rather than after | Rich Felker | 2011-02-17 | 1 | -12/+10 |
| | |||||
* | daemon should check for failures and return -1 | Rich Felker | 2011-02-17 | 1 | -5/+8 |
| | |||||
* | don't compare elements with themselves during qsort. | Rich Felker | 2011-02-17 | 1 | -1/+1 |
| | | | | | this is actually a workaround for a bug in gcc, whereby it asserts inequality of the keys being compared... | ||||
* | fix printf %n specifier - missing breaks had it clobbering memory | Rich Felker | 2011-02-16 | 1 | -7/+7 |
| | |||||
* | patch by njk, simplifies thread register initialization for x86_64 | Rich Felker | 2011-02-16 | 1 | -4/+0 |
| | | | | | It's not necessary to save any registers on the stack across syscall in x86_64 __set_thread_area. Don't waste cycles or bytes on it. | ||||
* | patch from njk: make x86_64 __uniclone branchless. | Rich Felker | 2011-02-16 | 1 | -6/+6 |
| | |||||
* | fix compile failure: legacy cuserid needs to define feature test | Rich Felker | 2011-02-16 | 1 | -0/+1 |
| | |||||
* | remove standalone syscall cruft | Rich Felker | 2011-02-15 | 10 | -10/+0 |
| | | | | | | | | | | | this was originally written for an early draft of the library where non-standard functions would reside in a static library separate from the shared libc.so, which would implement a pure standard. the idea was not to depend on an implementation-dependent __syscall_ret function in the main libc. but it turned out to be better to put everything in a single library for both static and dynamic linking uses, and thus the (incomplete) remnants of this feature were just enlarging the source and binary. | ||||
* | Port musl to x86-64. One giant commit! | Nicholas J. Kain | 2011-02-15 | 9 | -0/+138 |
| | |||||
* | yet another ugly legacy syscall rename... | Rich Felker | 2011-02-15 | 1 | -1/+1 |
| | |||||
* | fix getrlimit handling on 32-bit systems, and ease porting to 64-bit | Rich Felker | 2011-02-15 | 1 | -3/+3 |
| | |||||
* | cleanup socketcall syscall interface to ease porting to sane(r) archs | Rich Felker | 2011-02-15 | 19 | -94/+17 |
| | |||||
* | finish moving 32-bit-specific junk out of source files. | Rich Felker | 2011-02-15 | 11 | -21/+11 |
| | |||||
* | move arch-specific internal headers into place | Rich Felker | 2011-02-15 | 4 | -637/+0 |
| | |||||
* | finish unifying thread register handling in preparation for porting | Rich Felker | 2011-02-15 | 5 | -52/+27 |
| | |||||
* | begin unifying clone/thread management interface in preparation for porting | Rich Felker | 2011-02-15 | 3 | -34/+22 |
| | |||||
* | make pthread_create return EAGAIN on resource failure, as required by POSIX | Rich Felker | 2011-02-15 | 1 | -1/+1 |
| | |||||
* | guard against hard links to non-ordinary-files when reading tcb shadow | Rich Felker | 2011-02-14 | 1 | -2/+4 |
| | |||||
* | more header cleanup and conformance fixes - string.h | Rich Felker | 2011-02-14 | 1 | -0/+1 |
| | |||||
* | header cleanup, conformance fixes - signals | Rich Felker | 2011-02-14 | 2 | -6/+3 |
| | |||||
* | another pointer signedness fix | Rich Felker | 2011-02-14 | 1 | -1/+1 |
| | |||||
* | fix some pointer signedness issues (this was invalid C) | Rich Felker | 2011-02-14 | 2 | -3/+3 |
| | |||||
* | more header fixes, minor warning fix | Rich Felker | 2011-02-14 | 4 | -2/+5 |
| | |||||
* | ensure standard functions mk[sd]temp don't depend on removed function mktemp | Rich Felker | 2011-02-14 | 3 | -5/+9 |
| | |||||
* | put confstr.c with the other conf functions | Rich Felker | 2011-02-14 | 1 | -0/+0 |
| | |||||
* | begin namespace-cleanup of standard C headers | Rich Felker | 2011-02-14 | 2 | -0/+2 |
| | |||||
* | use a more-correct integer type, and silence 64-bit warnings as a bonus | Rich Felker | 2011-02-13 | 1 | -2/+2 |
| | |||||
* | fixed missing cast in the non-i386 version of shmat (preparation for ports) | Rich Felker | 2011-02-13 | 1 | -1/+1 |
| | |||||
* | cleanup multibyte stuff to remove ugly casts, sanitize the ptr align casts | Rich Felker | 2011-02-13 | 3 | -27/+27 |
| | |||||
* | cleaning up syscalls in preparation for x86_64 port | Rich Felker | 2011-02-13 | 18 | -37/+79 |
| | | | | | | | | | - hide all the legacy xxxxxx32 name cruft in syscall.h so the actual source files can be clean and uniform across all archs. - cleanup llseek/lseek and mmap2/mmap handling for 32/64 bit systems - alternate implementation for nice if the target lacks nice syscall |