Module Name: src
Committed By: tls
Date: Mon Jan 11 14:55:52 UTC 2016
Modified Files:
src/sys/kern: kern_rndq.c
Log Message:
memset() -> explicit_memset() for sensitive data.
To generate a diff of this commit:
cvs rdiff -u -r1.74 -r1.75 src/sys/kern/kern_rndq.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/kern_rndq.c
diff -u src/sys/kern/kern_rndq.c:1.74 src/sys/kern/kern_rndq.c:1.75
--- src/sys/kern/kern_rndq.c:1.74 Fri Jan 1 16:09:00 2016
+++ src/sys/kern/kern_rndq.c Mon Jan 11 14:55:52 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_rndq.c,v 1.74 2016/01/01 16:09:00 tls Exp $ */
+/* $NetBSD: kern_rndq.c,v 1.75 2016/01/11 14:55:52 tls Exp $ */
/*-
* Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.74 2016/01/01 16:09:00 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.75 2016/01/11 14:55:52 tls Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -572,7 +572,7 @@ rnd_init(void)
mutex_spin_exit(&rnd_global.lock);
rnd_printf("rnd: seeded with %d bits\n",
MIN(boot_rsp->entropy, RND_POOLBITS / 2));
- memset(boot_rsp, 0, sizeof(*boot_rsp));
+ explicit_memset(boot_rsp, 0, sizeof(*boot_rsp));
}
rnd_attach_source(&rnd_printf_source, "printf", RND_TYPE_UNKNOWN,
RND_FLAG_NO_ESTIMATE);
@@ -621,7 +621,7 @@ static void
rnd_sample_free(rnd_sample_t *c)
{
- memset(c, 0, sizeof(*c));
+ explicit_memset(c, 0, sizeof(*c));
pool_cache_put(rnd_mempc, c);
}
@@ -996,7 +996,7 @@ rnd_hwrng_test(rnd_sample_t *sample)
return 1;
}
source->test_cnt = -1;
- memset(source->test, 0, sizeof(*source->test));
+ explicit_memset(source->test, 0, sizeof(*source->test));
}
return 0;
}
@@ -1201,7 +1201,7 @@ rnd_extract_data(void *p, uint32_t len,
"STATISTICAL TEST!\n");
continue;
}
- memset(&rnd_rt, 0, sizeof(rnd_rt));
+ explicit_memset(&rnd_rt, 0, sizeof(rnd_rt));
rndpool_add_data(&rnd_global.pool, rnd_testbits,
sizeof(rnd_testbits), entropy_count);
memset(rnd_testbits, 0, sizeof(rnd_testbits));
@@ -1319,7 +1319,7 @@ rnd_seed(void *base, size_t len)
rndpool_add_data(&rnd_global.pool, boot_rsp->data,
sizeof(boot_rsp->data),
MIN(boot_rsp->entropy, RND_POOLBITS / 2));
- memset(boot_rsp, 0, sizeof(*boot_rsp));
+ explicit_memset(boot_rsp, 0, sizeof(*boot_rsp));
mutex_spin_exit(&rnd_global.lock);
} else {
rnd_printf_verbose("rnd: not ready, deferring seed feed.\n");