Cleanup portable arc4random fork detection code:
authormatthew <matthew@openbsd.org>
Fri, 18 Jul 2014 21:40:54 +0000 (21:40 +0000)
committermatthew <matthew@openbsd.org>
Fri, 18 Jul 2014 21:40:54 +0000 (21:40 +0000)
commite54c0f45bd3dbf23ff668862702dcc414b63635f
tree8945fcd2be5d397501384c9de09de9dc9a914d6c
parentdfe3a460f3536f7e854b3f4d8e29bcf217dc67f2
Cleanup portable arc4random fork detection code:

1. Use "len" parameter instead of sizeof(*rs).

2. Simplify the atfork handler to be strictly async signal safe by
simply writing to a global volatile sig_atomic_t object, and then
checking for this in _rs_forkdetect().  (Idea from discussions with
Szabolcs Nagy and Rich Felker.)

3. Use memset(rs, 0, sizeof(*rs)) to match OpenBSD's MAP_INHERIT_ZERO
fork semantics to avoid any skew in behavior across platforms.

ok deraadt
lib/libcrypto/arc4random/arc4random_linux.h
lib/libcrypto/arc4random/arc4random_osx.h
lib/libcrypto/arc4random/arc4random_solaris.h
lib/libcrypto/crypto/arc4random_linux.h
lib/libcrypto/crypto/arc4random_osx.h
lib/libcrypto/crypto/arc4random_solaris.h