summaryrefslogtreecommitdiff
path: root/lib/libc
AgeCommit message (Collapse)Author
2018-08-21Use an mmap()'d buffer instead of a static buffer for the contentsTodd C. Miller
of the pointer returned by getpw{ent,nam,uid}(). We unmap the buffer each time to catch callers using a stale passwd struct pointer. As a special case, we do not unmap the buffer if the previous lookup was for the same name or uid. This special case may be removed in the future. OK deraadt@
2018-08-18Don't mention using poll(2) as a timeout.cheloha
Not a strictly portable use of the interface and there are more suitable interfaces for timeouts anyway. ok schwarze millert
2018-08-12Add retguard macros for arm64 asm and apply them in the straightforwardmortimer
cases in kernel and libc. ok deraadt@
2018-07-30Some cleanups and clarification, especially regarding locking (observed by rob)Theo de Raadt
ok beck jmc
2018-07-30tweak previous;Jason McIntyre
2018-07-30document the current limitation (we don't yet find an above coveringBob Beck
unveil for relative operations) that I am working on in BUGS
2018-07-28re-ordering for sensibility, by semarie; ok jmcTheo de Raadt
2018-07-27Full stop.rob
2018-07-18tidy up the flags section a little: supply a little more indent, and reduceJason McIntyre
the amount of modal verbs going on;
2018-07-16fix thinkoMarc Espie
okay mestre@
2018-07-13Correct some typos and also ran it through mandoc -TlintRicardo Mestre
OK millert@ deraadt@ and jmc@ who also gave me a cluebat stick
2018-07-13Crank minor for unveilBob Beck
ok deraadt@
2018-07-13Unveiling unveil(2).Bob Beck
This brings unveil into the tree, disabled by default - Currently this will return EPERM on all attempts to use it until we are fully certain it is ready for people to start using, but this now allows for others to do more tweaking and experimentation. Still needs to send the unveil's across forks and execs before fully enabling. Many thanks to robert@ and deraadt@ for extensive testing. ok deraadt@
2018-07-12Add hw.ncpuonline to count the number of online CPUs.cheloha
The introduction of hw.smt means that logical CPUs can be disabled after boot and prior to suspend/resume. If hw.smt=0 (the default), there needs to be a way to count the number of hardware threads available on the system at any given time. So, import HW_NCPUONLINE/hw.ncpuonline from NetBSD and document it. hw.ncpu becomes equal to the number of CPUs given to sched_init_cpu() during boot, while hw.ncpuonline is equal to the number of CPUs available to the scheduler in the cpuset "sched_all_cpus". Set_SC_NPROCESSORS_ONLN equal to this new sysctl and keep _SC_NPROCESSORS_CONF equal to hw.ncpu. This is preferable to adding a new sysctl to count the number of configured CPUs and keeping hw.ncpu equal to the number of online CPUs because such a change would break software in the ecosystem that relies on HW_NCPU/hw.ncpu to measure CPU usage and the like. Such software in base includes top(1), systat(1), and snmpd(8), and perhaps others. We don't need additional locking to count the cardinality of a cpuset in this case because the only interfaces that can modify said cardinality are sysctl(2) and ioctl(2), both of which are under the KERNEL_LOCK. Software using HW_NCPU/hw.ncpu to determine optimal parallism will need to be updated to use HW_NCPUONLINE/hw.ncpuonline. Until then, such software may perform suboptimally. However, most changes will be similar to the change included here for libcxx's std::thread:hardware_concurrency(): using HW_NCPUONLINE in lieu of HW_NCPU should be sufficient for determining optimal parallelism for most software if the change to _SC_NPROCESSORS_ONLN is insufficient. Prompted by deraadt. Discussed at length with kettenis, deraadt, and sthen. Lots of patch tweaks from kettenis. ok kettenis, "proceed" deraadt
2018-07-11Drop a const-bomb on regexec. It's probably not a good idea to remove aMartijn van Duren
const promise when processing it in the regex engine. Minor tweak and OK schwarze@
2018-07-10In asm.h ensure NENTRY uses the old-school nop-sled align, but change standardTheo de Raadt
ENTRY is a trapsled. Fix a few functions which fall-through into an ENTRY macro. amd64 binaries now are free of double+-nop sequences (except for one assember nit in aes-586.pl). Previous changes by guenther got us here. ok mortimer kettenis
2018-07-03Add retguard macros for libc.mortimer
ok deraadt
2018-06-25During open(2), release the fdp lock before calling vn_open(9).Visa Hankala
This lets other threads of the process modify the file descriptor table even if the vn_open(9) call blocks. The change has an effect on dup2(2) and dup3(2). If the new descriptor is the same as the one reserved by an unfinished open(2), the system call will fail with error EBUSY. The accept(2) system call already behaves like this. Issue pointed out by art@ via mpi@ Tested in a bulk build by ajacoutot@ OK mpi@
2018-06-22Save and restore the relevant FPU state on armv7.Mark Kettenis
ok deraadt@
2018-06-21sort SEE ALSO;Jason McIntyre
2018-06-21s/simultanious/simultaneous/Jason McIntyre
2018-06-21Document hw.smt.Mark Kettenis
2018-06-19use a full stop, as per the other items; from nan xiaoJason McIntyre
2018-06-16Add add PIE support for m88k (requires gcc4 toolchain)Philip Guenther
Convert __cerror to hidden visibility. from miod@
2018-06-04Use process-private futexes. This avoids the overhead of calling into uvmMark Kettenis
to look up the mapping for the futex address. ok visa@, mpi@
2018-06-03for the witness(4) text, we already Xr the page in the first sentence, so addingJason McIntyre
"See witness(4)" is unneccessary, and just bulks this already large page: remove it;
2018-05-28Drop include of <arm64/swi.h> and remove it.Mark Kettenis
ok drahm@
2018-05-28Returns EBUSY if dup2(2) is called for a LARVAL file.Martin Pieuchot
This prevents a panic due to a double free if a program exits after having called accept(2) and dup2(2) on the same fd but without the corresponding connect(5). It will also allows us to simplify file descriptor locking. The error code has been choosed to match Linux's behavior. Pointed by Mathieu on tech@ after a discussion with guenther@. ok visa@
2018-05-28Clear the sign bit in the QNAN constants used by strtof, strtod and strtold,Jonathan Matthew
so passing "nan" and "-nan" produces a NaN with the right sign. Bug reported and diff provided by George Koehler. ok kettenis@
2018-05-26document the new kern.audio node; OK ratchov@Ingo Schwarze
2018-05-19Switch sparc64 to futex(2) based mutexes and condvars.Martin Pieuchot
ok visa@
2018-05-17Drop memory barrier in _atomic_lock() implementation since the callers nowMark Kettenis
take care of this. ok visa@, mpi@
2018-05-16Document kern.witnesswatch in sysctl(2).Visa Hankala
Reminded by jmc@
2018-05-13Enable futex(2)-based mutex on arm64.Visa Hankala
OK mpi@, kettenis@
2018-05-13Add memory barriers to libc's _spinlock() to make the mechanismVisa Hankala
serialize memory accesses properly. _spinlock()'s backend, _atomic_lock(), already issues an entry barrier on some architectures, but that practice has not been consistent. This patch generalizes the barrier use. OK kettenis@, mpi@
2018-05-10Fix typo in RFC number.Theo Buehler
ok benno
2018-04-30Add a missing header when compiling with -DDEBUGdenis
With advice from jca@ OK jca@ millert@
2018-04-28reference hosts(5) instead of networks(5)Ingo Schwarze
2018-04-28Remove references to the obsolete getnetent(3) and networks(5).Ingo Schwarze
2018-04-28Stop talking about /etc/networks, which is no longer used,Ingo Schwarze
and reference gethostby*(3) and /etc/hosts instead. Say that setnetent(3), getnetent(3), and endnetent(3) now do nothing. With feedback from guenther and significant help from deraadt@.
2018-04-28Say that sethostent(3), gethostent(3), and endhostent(3) do nothing.Ingo Schwarze
While here, stop implying plans to support additional address families in the future, and do not call gethostbyname2(3) "advanced". OK deraadt@ guenther@
2018-04-28To allow us to get rid of /etc/networks, make getnetby*(3)Ingo Schwarze
wrappers around gethostby*_async(3). If you had anything of importance in /etc/networks, specify it in /etc/hosts instead. Feedback and OK eric@, OK deraadt@
2018-04-28Minor cleanup, no functional change:Ingo Schwarze
Remove unused headers and a comment implying that we might consider reviving these dead horses in the future, which we do not intend to do. OK deraadt@ guenther@
2018-04-28To allow us to get rid of /etc/networks, make setnetent(3),Ingo Schwarze
getnetent(3), and endnetent(3) do nothing, just like sethostent(3), gethostent(3), and endhostent(3) years ago. OK deraadt@ guenther@
2018-04-27Fix typo in binary-float example in commentPhilip Guenther
2018-04-27<sys/mount.h> and <sys/swap.h> no longer require <sys/param.h>Philip Guenther
ok krw@
2018-04-24Make futex(2) also return ECANCELED in case SA_RESTART was set.Paul Irofti
Prodded by and ok mpi@
2018-04-24Validate timespec and return ECANCELED when interrupted with SA_RESTART.Paul Irofti
Discussing with mpi@ and guenther@, we decided to first fix the existing semaphore implementation with regards to SA_RESTART and POSIX compliant returns in the case where we deal with restartable signals. Currently we return EINTR everywhere which is mostly incorrect as the user can not know if she needs to recall the syscall or not. Return ECANCELED to signal that SA_RESTART was set and EINTR otherwise. Regression tests pass and so does the posixsuite. Timespec validation bits are needed to pass the later. OK mpi@, guenther@
2018-04-22use NULL for pointerTheo de Raadt
2018-04-22mmap() no longer needs to be used. Without providing too many details,Theo de Raadt
describe how an inner-region is found for applying MAP_STACK, and that currently MAP_STACK remains set when the sigaltstack is disabled. ok kettenis guenther schwarze