diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2016-01-01 19:16:49 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-07-05 14:35:13 +0200 |
commit | db9da99a36a4d83b77f8f8e90482c2d6cc0e20de (patch) | |
tree | 46a2f939941cc85e736de5627e7430cf4e2937f7 /src/dh.c | |
parent | c3dac948c916c1330419980f71a72c253efd19b8 (diff) | |
download | libssh-db9da99a36a4d83b77f8f8e90482c2d6cc0e20de.tar.gz libssh-db9da99a36a4d83b77f8f8e90482c2d6cc0e20de.tar.xz libssh-db9da99a36a4d83b77f8f8e90482c2d6cc0e20de.zip |
bignum: Make bignum_free safer
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/dh.c')
-rw-r--r-- | src/dh.c | 37 |
1 files changed, 16 insertions, 21 deletions
@@ -142,33 +142,31 @@ int ssh_dh_init(void) #if defined(HAVE_LIBGCRYPT) bignum_bin2bn(p_group1_value, P_GROUP1_LEN, &p_group1); if (p_group1 == NULL) { - bignum_free(g); - g = NULL; - return -1; + bignum_safe_free(g); + + return SSH_ERROR; } bignum_bin2bn(p_group14_value, P_GROUP14_LEN, &p_group14); if (p_group14 == NULL) { - bignum_free(g); - bignum_free(p_group1); - g = NULL; - p_group1 = NULL; - return -1; + bignum_safe_free(g); + bignum_safe_free(p_group1); + + return SSH_ERROR; } #elif defined(HAVE_LIBCRYPTO) p_group1 = bignum_new(); if (p_group1 == NULL) { - bignum_free(g); - g = NULL; - return -1; + bignum_safe_free(g); + + return SSH_ERROR; } bignum_bin2bn(p_group1_value, P_GROUP1_LEN, p_group1); p_group14 = bignum_new(); if (p_group14 == NULL) { - bignum_free(g); - bignum_free(p_group1); - g = NULL; - p_group1 = NULL; + bignum_safe_free(g); + bignum_safe_free(p_group1); + return SSH_ERROR; } bignum_bin2bn(p_group14_value, P_GROUP14_LEN, p_group14); @@ -194,12 +192,9 @@ void ssh_dh_finalize(void) return; } - bignum_free(g); - g = NULL; - bignum_free(p_group1); - p_group1 = NULL; - bignum_free(p_group14); - p_group14 = NULL; + bignum_safe_free(g); + bignum_safe_free(p_group1); + bignum_safe_free(p_group14); dh_crypto_initialized = 0; } |