summaryrefslogtreecommitdiff
path: root/random
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2022-04-21 10:18:03 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2022-04-21 10:18:03 +0900
commitf436bf4451cb2ad0a1f56aa843bf79a58878022f (patch)
treed9427955cec7eaacb27f8f11ca92d8a8586bd48f /random
parentcd30ed3c0d715aa0c58a32a29cfb1476163a5b94 (diff)
downloadlibgcrypt-f436bf4451cb2ad0a1f56aa843bf79a58878022f.tar.gz
random: Not use secure memory for DRBG instance.
* random/random-drbg.c (drbg_instance): New at BSS. (_drbg_init_internal): Don't allocate at secure memory. (_gcry_rngdrbg_close_fds): Follow the change. -- GnuPG-bug-id: 5933 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Diffstat (limited to 'random')
-rw-r--r--random/random-drbg.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/random/random-drbg.c b/random/random-drbg.c
index 5a46fd92..f1cfe286 100644
--- a/random/random-drbg.c
+++ b/random/random-drbg.c
@@ -341,6 +341,9 @@ enum drbg_prefixes
* Global variables
***************************************************************/
+/* The instance of the DRBG, to be refereed by drbg_state. */
+static struct drbg_state_s drbg_instance;
+
/* Global state variable holding the current instance of the DRBG. */
static drbg_state_t drbg_state;
@@ -1783,9 +1786,7 @@ _drbg_init_internal (u32 flags, drbg_string_t *pers)
}
else
{
- drbg_state = xtrycalloc_secure (1, sizeof *drbg_state);
- if (!drbg_state)
- return gpg_err_code_from_syserror ();
+ drbg_state = &drbg_instance;
}
if (flags & DRBG_PREDICTION_RESIST)
pr = 1;
@@ -1879,7 +1880,6 @@ _gcry_rngdrbg_close_fds (void)
if (drbg_state)
{
drbg_uninstantiate (drbg_state);
- xfree (drbg_state);
drbg_state = NULL;
}
drbg_unlock ();