mirror of
https://github.com/libevent/libevent.git
synced 2025-01-20 05:02:55 +08:00
Merge remote-tracking branch 'public/20_memclear' into patches-2.0
This commit is contained in:
commit
c83efb801f
12
arc4random.c
12
arc4random.c
@ -161,7 +161,7 @@ arc4_seed_win32(void)
|
||||
if (!CryptGenRandom(provider, sizeof(buf), buf))
|
||||
return -1;
|
||||
arc4_addrandom(buf, sizeof(buf));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
evutil_memclear_(buf, sizeof(buf));
|
||||
arc4_seeded_ok = 1;
|
||||
return 0;
|
||||
}
|
||||
@ -199,7 +199,7 @@ arc4_seed_sysctl_linux(void)
|
||||
return -1;
|
||||
|
||||
arc4_addrandom(buf, sizeof(buf));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
evutil_memclear_(buf, sizeof(buf));
|
||||
arc4_seeded_ok = 1;
|
||||
return 0;
|
||||
}
|
||||
@ -239,7 +239,7 @@ arc4_seed_sysctl_bsd(void)
|
||||
return -1;
|
||||
|
||||
arc4_addrandom(buf, sizeof(buf));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
evutil_memclear_(buf, sizeof(buf));
|
||||
arc4_seeded_ok = 1;
|
||||
return 0;
|
||||
}
|
||||
@ -284,8 +284,8 @@ arc4_seed_proc_sys_kernel_random_uuid(void)
|
||||
arc4_addrandom(entropy, nybbles/2);
|
||||
bytes += nybbles/2;
|
||||
}
|
||||
memset(entropy, 0, sizeof(entropy));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
evutil_memclear_(entropy, sizeof(entropy));
|
||||
evutil_memclear_(buf, sizeof(buf));
|
||||
arc4_seeded_ok = 1;
|
||||
return 0;
|
||||
}
|
||||
@ -309,7 +309,7 @@ static int arc4_seed_urandom_helper_(const char *fname)
|
||||
if (n != sizeof(buf))
|
||||
return -1;
|
||||
arc4_addrandom(buf, sizeof(buf));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
evutil_memclear_(buf, sizeof(buf));
|
||||
arc4_seeded_ok = 1;
|
||||
return 0;
|
||||
}
|
||||
|
12
evutil.c
12
evutil.c
@ -2109,6 +2109,18 @@ _evutil_weakrand(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Volatile pointer to memset: we use this to keep the compiler from
|
||||
* eliminating our call to memset.
|
||||
*/
|
||||
void * (*volatile evutil_memset_volatile_)(void *, int, size_t) = memset;
|
||||
|
||||
void
|
||||
evutil_memclear_(void *mem, size_t len)
|
||||
{
|
||||
evutil_memset_volatile_(mem, 0, len);
|
||||
}
|
||||
|
||||
int
|
||||
evutil_sockaddr_is_loopback(const struct sockaddr *addr)
|
||||
{
|
||||
|
@ -320,6 +320,8 @@ HANDLE evutil_load_windows_system_library(const TCHAR *library_name);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void evutil_memclear_(void *mem, size_t len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user