X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libevent%2Farc4random.c;h=ee2b73a27d8e3bbf073d024e8a04522a6dc9c127;hb=aad647f51d82eabd051a30529479e9ddf081404b;hp=b6d2c5b339e845766260c0b19b67c0113940f452;hpb=ad220cd96d55445846d30b951a188ec5f9b849b2;p=netatalk.git diff --git a/libevent/arc4random.c b/libevent/arc4random.c index b6d2c5b3..ee2b73a2 100644 --- a/libevent/arc4random.c +++ b/libevent/arc4random.c @@ -1,6 +1,7 @@ /* Portable arc4random.c based on arc4random.c from OpenBSD. * Portable version by Chris Davis, adapted for Libevent by Nick Mathewson * Copyright (c) 2010 Chris Davis, Niels Provos, and Nick Mathewson + * Copyright (c) 2010-2012 Niels Provos and Nick Mathewson * * Note that in Libevent, this file isn't compiled directly. Instead, * it's included from evutil_rand.c @@ -166,7 +167,7 @@ arc4_seed_win32(void) } #endif -#if defined(_EVENT_HAVE_SYS_SYSCTL_H) +#if defined(_EVENT_HAVE_SYS_SYSCTL_H) && defined(_EVENT_HAVE_SYSCTL) #if _EVENT_HAVE_DECL_CTL_KERN && _EVENT_HAVE_DECL_KERN_RANDOM && _EVENT_HAVE_DECL_RANDOM_UUID #define TRY_SEED_SYSCTL_LINUX static int @@ -352,7 +353,7 @@ arc4_seed(void) return ok ? 0 : -1; } -static void +static int arc4_stir(void) { int i; @@ -363,6 +364,8 @@ arc4_stir(void) } arc4_seed(); + if (!arc4_seeded_ok) + return -1; /* * Discard early keystream, as per recommendations in @@ -385,6 +388,8 @@ arc4_stir(void) for (i = 0; i < 12*256; i++) (void)arc4_getbyte(); arc4_count = BYTES_BEFORE_RESEED; + + return 0; }