Module Name: src Committed By: riastradh Date: Sun Mar 2 22:46:24 UTC 2025
Modified Files: src/lib/libc/gen: arc4random.c pthread_atfork.c Log Message: libc: New __libc_atfork. This uses caller-provided storage for the callback queues. Use it in arc4random(3) in order to avoid possible failure modes. This is a private symbol, not designed for use outside NetBSD, and the API is not intended to be stable (yet) -- I just took the existing purely internal structure (struct atfork_callback) and reused it for this API without changing any of the calling-side logic. We could change it, e.g. to use a single structure per call, to make the API a little less unwieldy, at the cost of microscopically more storage and runtime for the users that don't use all three callbacks; to be considered in a future change. We might reasonably use __libc_atfork in libpthread for use in the pthread_tsd_init constructor, in order to be confident it never attempts malloc(3), but let's do that in a separate commit just in case anything goes awry with that plan. PR lib/59112: libpthread constructors use malloc PR lib/59117: arc4random has some failure modes it shouldn't To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/lib/libc/gen/arc4random.c cvs rdiff -u -r1.23 -r1.24 src/lib/libc/gen/pthread_atfork.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.