mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-12-19 14:31:48 +01:00
abort in srandomdev if kern.arandom sysctl fails
The sysctl cannot fail. If it does fail on some FreeBSD derivative or after some future change, just abort() so that the problem will be found and fixed. While abort() is not normally suitable for a library, it makes sense here. This is akin to r306636 for arc4random. Reviewed by: ed MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8077
This commit is contained in:
parent
e7798d20c5
commit
7e81ad1292
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=306708
@ -270,16 +270,17 @@ void
|
||||
srandomdev(void)
|
||||
{
|
||||
int mib[2];
|
||||
size_t len;
|
||||
size_t expected, len;
|
||||
|
||||
if (rand_type == TYPE_0)
|
||||
len = sizeof(state[0]);
|
||||
expected = len = sizeof(state[0]);
|
||||
else
|
||||
len = rand_deg * sizeof(state[0]);
|
||||
expected = len = rand_deg * sizeof(state[0]);
|
||||
|
||||
mib[0] = CTL_KERN;
|
||||
mib[1] = KERN_ARND;
|
||||
sysctl(mib, 2, state, &len, NULL, 0);
|
||||
if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != expected)
|
||||
abort();
|
||||
|
||||
if (rand_type != TYPE_0) {
|
||||
fptr = &state[rand_sep];
|
||||
|
Loading…
Reference in New Issue
Block a user