random: CTASSERT check sizeof random_source_descr[]
Ensure that the number of elements of random_source_descr[] and fxrng_ent_char[] matches that of enum random_entropy_source. Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D53255
This commit is contained in:
@@ -127,7 +127,7 @@ static const struct fxrng_ent_cls fxrng_garbage = {
|
||||
*/
|
||||
static const struct fxrng_ent_char {
|
||||
const struct fxrng_ent_cls *entc_cls;
|
||||
} fxrng_ent_char[ENTROPYSOURCE] = {
|
||||
} fxrng_ent_char[/*ENTROPYSOURCE*/] = {
|
||||
[RANDOM_CACHED] = {
|
||||
.entc_cls = &fxrng_hi_push,
|
||||
},
|
||||
@@ -213,6 +213,7 @@ static const struct fxrng_ent_char {
|
||||
.entc_cls = &fxrng_hi_pull,
|
||||
},
|
||||
};
|
||||
CTASSERT(nitems(fxrng_ent_char) == ENTROPYSOURCE);
|
||||
|
||||
/* Useful for single-bit-per-source state. */
|
||||
BITSET_DEFINE(fxrng_bits, ENTROPYSOURCE);
|
||||
|
||||
@@ -88,7 +88,7 @@ static void random_sources_feed(void);
|
||||
static __read_mostly bool epoch_inited;
|
||||
static __read_mostly epoch_t rs_epoch;
|
||||
|
||||
static const char *random_source_descr[ENTROPYSOURCE];
|
||||
static const char *random_source_descr[];
|
||||
|
||||
/*
|
||||
* How many events to queue up. We create this many items in
|
||||
@@ -109,6 +109,7 @@ volatile int random_kthread_control;
|
||||
* Updates are synchronized by the harvest mutex.
|
||||
*/
|
||||
__read_frequently u_int hc_source_mask;
|
||||
CTASSERT(ENTROPYSOURCE <= sizeof(hc_source_mask) * NBBY);
|
||||
|
||||
struct random_sources {
|
||||
CK_LIST_ENTRY(random_sources) rrs_entries;
|
||||
@@ -647,7 +648,7 @@ SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask_bin,
|
||||
random_print_harvestmask, "A",
|
||||
"Entropy harvesting mask (printable)");
|
||||
|
||||
static const char *random_source_descr[ENTROPYSOURCE] = {
|
||||
static const char *random_source_descr[/*ENTROPYSOURCE*/] = {
|
||||
[RANDOM_CACHED] = "CACHED",
|
||||
[RANDOM_ATTACH] = "ATTACH",
|
||||
[RANDOM_KEYBOARD] = "KEYBOARD",
|
||||
@@ -678,6 +679,7 @@ static const char *random_source_descr[ENTROPYSOURCE] = {
|
||||
[RANDOM_PURE_ARM_TRNG] = "PURE_ARM_TRNG",
|
||||
/* "ENTROPYSOURCE" */
|
||||
};
|
||||
CTASSERT(nitems(random_source_descr) == ENTROPYSOURCE);
|
||||
|
||||
static int
|
||||
random_print_harvestmask_symbolic(SYSCTL_HANDLER_ARGS)
|
||||
|
||||
Reference in New Issue
Block a user