From 51b933dfffb953ab5ba916b86895dfc125320876 Mon Sep 17 00:00:00 2001 From: Landon Curt Noll Date: Tue, 30 Nov 2021 03:35:09 -0800 Subject: [PATCH] Add initialization paranoia --- zrandom.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/zrandom.c b/zrandom.c index 674c329..301bb58 100644 --- a/zrandom.c +++ b/zrandom.c @@ -2663,6 +2663,9 @@ zrandomskip(long cnt) free(p_blum); } loglogn = (long)blum.loglogn; + new_r.len = 0; /* paranoia */ + new_r.v = NULL; + new_r.sign = 0; /* * skip required bits in the buffer @@ -2769,6 +2772,9 @@ zrandom(long cnt, ZVALUE *res) } loglogn = blum.loglogn; mask = blum.mask; + new_r.len = 0; /* paranoia */ + new_r.v = NULL; + new_r.sign = 0; /* * allocate storage @@ -3062,23 +3068,16 @@ randomcopy(CONST RANDOM *state) void randomfree(RANDOM *state) { -#if 0 - /* avoid free of the pre-defined states */ - if (state == &init_blum) { - return; - } - if (state >= &random_pregen[0] && - state <= &random_pregen[BLUM_PREGEN-1]) { - return; - } -#endif - /* free the values */ zfree_random(state->n); zfree_random(state->r); /* free it if it is not pre-defined */ state->seeded = 0; + state->bits = 0; /* paranoia */ + state->buffer = 0; + + /* free it if it is not pre-defined */ if (state != &blum) { free(state); }