diff options
author | Nick Mathewson <nickm@torproject.org> | 2016-08-11 20:37:18 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2016-08-11 20:37:18 -0400 |
commit | e788c577f11ef4c0309e9d5298bf57639c0ebb06 (patch) | |
tree | 9f53f02ba7fcc8317299c93a471aeac71d8c3979 | |
parent | 60997a00e8e7585e076c750ab37095c0bfc3c773 (diff) | |
download | tor-e788c577f11ef4c0309e9d5298bf57639c0ebb06.tar.gz tor-e788c577f11ef4c0309e9d5298bf57639c0ebb06.zip |
Only use evutil_secure_rng_add_bytes() when present.
OpenBSD removes this function, and now that Tor requires Libevent 2,
we should also support the OpenBSD Libevent 2.
Fixes bug 19904; bugfix on 0.2.5.4-alpha.
-rw-r--r-- | changes/bug19904 | 4 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/common/compat_libevent.c | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/changes/bug19904 b/changes/bug19904 new file mode 100644 index 0000000000..217d82df5e --- /dev/null +++ b/changes/bug19904 @@ -0,0 +1,4 @@ + o Minor bugfixes (compilation): + - Build correctly on versions of libevent2 without support + for evutil_secure_rng_add_bytes(). Fixes bug 19904; + bugfix on 0.2.5.4-alpha. diff --git a/configure.ac b/configure.ac index be7c4e8f65..a1a55e1b40 100644 --- a/configure.ac +++ b/configure.ac @@ -500,7 +500,9 @@ save_CPPFLAGS="$CPPFLAGS" LIBS="-levent $STATIC_LIBEVENT_FLAGS $TOR_LIB_WS32 $LIBS" LDFLAGS="$TOR_LDFLAGS_libevent $LDFLAGS" CPPFLAGS="$TOR_CPPFLAGS_libevent $CPPFLAGS" -AC_CHECK_FUNCS([evutil_secure_rng_set_urandom_device_file]) +AC_CHECK_FUNCS([evutil_secure_rng_set_urandom_device_file \ + evutil_secure_rng_add_bytes \ +]) LIBS="$STATIC_LIBEVENT_FLAGS $TOR_LIB_WS32 $save_LIBS" diff --git a/src/common/compat_libevent.c b/src/common/compat_libevent.c index 4dab54493f..055d6a8500 100644 --- a/src/common/compat_libevent.c +++ b/src/common/compat_libevent.c @@ -337,7 +337,9 @@ tor_init_libevent_rng(void) rv = -1; } crypto_rand(buf, 32); +#ifdef HAVE_EVUTIL_SECURE_RNG_ADD_BYTES evutil_secure_rng_add_bytes(buf, 32); +#endif evutil_secure_rng_get_bytes(buf, sizeof(buf)); return rv; } |