diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/bn/bn_lib.c | 5 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/bn/bn_lib.c | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/src/lib/libcrypto/bn/bn_lib.c b/src/lib/libcrypto/bn/bn_lib.c index 9787a31dbb..6ec9282653 100644 --- a/src/lib/libcrypto/bn/bn_lib.c +++ b/src/lib/libcrypto/bn/bn_lib.c | |||
@@ -214,11 +214,10 @@ void BN_clear_free(BIGNUM *a) | |||
214 | 214 | ||
215 | if (a == NULL) return; | 215 | if (a == NULL) return; |
216 | bn_check_top(a); | 216 | bn_check_top(a); |
217 | if (a->d != NULL) | 217 | if (a->d != NULL && !(BN_get_flags(a,BN_FLG_STATIC_DATA))) |
218 | { | 218 | { |
219 | OPENSSL_cleanse(a->d,a->dmax*sizeof(a->d[0])); | 219 | OPENSSL_cleanse(a->d,a->dmax*sizeof(a->d[0])); |
220 | if (!(BN_get_flags(a,BN_FLG_STATIC_DATA))) | 220 | free(a->d); |
221 | free(a->d); | ||
222 | } | 221 | } |
223 | i=BN_get_flags(a,BN_FLG_MALLOCED); | 222 | i=BN_get_flags(a,BN_FLG_MALLOCED); |
224 | OPENSSL_cleanse(a,sizeof(BIGNUM)); | 223 | OPENSSL_cleanse(a,sizeof(BIGNUM)); |
diff --git a/src/lib/libssl/src/crypto/bn/bn_lib.c b/src/lib/libssl/src/crypto/bn/bn_lib.c index 9787a31dbb..6ec9282653 100644 --- a/src/lib/libssl/src/crypto/bn/bn_lib.c +++ b/src/lib/libssl/src/crypto/bn/bn_lib.c | |||
@@ -214,11 +214,10 @@ void BN_clear_free(BIGNUM *a) | |||
214 | 214 | ||
215 | if (a == NULL) return; | 215 | if (a == NULL) return; |
216 | bn_check_top(a); | 216 | bn_check_top(a); |
217 | if (a->d != NULL) | 217 | if (a->d != NULL && !(BN_get_flags(a,BN_FLG_STATIC_DATA))) |
218 | { | 218 | { |
219 | OPENSSL_cleanse(a->d,a->dmax*sizeof(a->d[0])); | 219 | OPENSSL_cleanse(a->d,a->dmax*sizeof(a->d[0])); |
220 | if (!(BN_get_flags(a,BN_FLG_STATIC_DATA))) | 220 | free(a->d); |
221 | free(a->d); | ||
222 | } | 221 | } |
223 | i=BN_get_flags(a,BN_FLG_MALLOCED); | 222 | i=BN_get_flags(a,BN_FLG_MALLOCED); |
224 | OPENSSL_cleanse(a,sizeof(BIGNUM)); | 223 | OPENSSL_cleanse(a,sizeof(BIGNUM)); |