diff options
author | Pauli <paul.dale@oracle.com> | 2019-11-21 14:19:50 +1000 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2019-11-22 15:19:28 +1000 |
commit | 3c659415465a29d41cdfb6866683af8690de1527 (patch) | |
tree | 2e719447a72ef5bb8b29da5e3c4e9b3d1dae9086 /providers | |
parent | 2a5385511051d33be8d2b20d7669d8b1862fe510 (diff) | |
download | openssl-3c659415465a29d41cdfb6866683af8690de1527.tar.gz |
kdfs: make free calls check for NULL.
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10496)
Diffstat (limited to 'providers')
-rw-r--r-- | providers/implementations/kdfs/hkdf.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/kbkdf.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/krb5kdf.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/pbkdf2.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/scrypt.c | 8 | ||||
-rw-r--r-- | providers/implementations/kdfs/sshkdf.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/sskdf.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/tls1_prf.c | 6 | ||||
-rw-r--r-- | providers/implementations/kdfs/x942kdf.c | 6 |
9 files changed, 37 insertions, 19 deletions
diff --git a/providers/implementations/kdfs/hkdf.c b/providers/implementations/kdfs/hkdf.c index 66d70635a6..d9f53a67e7 100644 --- a/providers/implementations/kdfs/hkdf.c +++ b/providers/implementations/kdfs/hkdf.c @@ -75,8 +75,10 @@ static void kdf_hkdf_free(void *vctx) { KDF_HKDF *ctx = (KDF_HKDF *)vctx; - kdf_hkdf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + kdf_hkdf_reset(ctx); + OPENSSL_free(ctx); + } } static void kdf_hkdf_reset(void *vctx) diff --git a/providers/implementations/kdfs/kbkdf.c b/providers/implementations/kdfs/kbkdf.c index 1c0e2b2b78..acc7d7f47b 100644 --- a/providers/implementations/kdfs/kbkdf.c +++ b/providers/implementations/kdfs/kbkdf.c @@ -113,8 +113,10 @@ static void kbkdf_free(void *vctx) { KBKDF *ctx = (KBKDF *)vctx; - kbkdf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + kbkdf_reset(ctx); + OPENSSL_free(ctx); + } } static void kbkdf_reset(void *vctx) diff --git a/providers/implementations/kdfs/krb5kdf.c b/providers/implementations/kdfs/krb5kdf.c index 83dfa9c2dc..ee7742ea27 100644 --- a/providers/implementations/kdfs/krb5kdf.c +++ b/providers/implementations/kdfs/krb5kdf.c @@ -63,8 +63,10 @@ static void krb5kdf_free(void *vctx) { KRB5KDF_CTX *ctx = (KRB5KDF_CTX *)vctx; - krb5kdf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + krb5kdf_reset(ctx); + OPENSSL_free(ctx); + } } static void krb5kdf_reset(void *vctx) diff --git a/providers/implementations/kdfs/pbkdf2.c b/providers/implementations/kdfs/pbkdf2.c index f08063fab5..077b93afb0 100644 --- a/providers/implementations/kdfs/pbkdf2.c +++ b/providers/implementations/kdfs/pbkdf2.c @@ -80,8 +80,10 @@ static void kdf_pbkdf2_free(void *vctx) { KDF_PBKDF2 *ctx = (KDF_PBKDF2 *)vctx; - kdf_pbkdf2_cleanup(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + kdf_pbkdf2_cleanup(ctx); + OPENSSL_free(ctx); + } } static void kdf_pbkdf2_reset(void *vctx) diff --git a/providers/implementations/kdfs/scrypt.c b/providers/implementations/kdfs/scrypt.c index a067a9a91c..425db1af6f 100644 --- a/providers/implementations/kdfs/scrypt.c +++ b/providers/implementations/kdfs/scrypt.c @@ -74,9 +74,11 @@ static void kdf_scrypt_free(void *vctx) { KDF_SCRYPT *ctx = (KDF_SCRYPT *)vctx; - EVP_MD_meth_free(ctx->sha256); - kdf_scrypt_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + EVP_MD_meth_free(ctx->sha256); + kdf_scrypt_reset(ctx); + OPENSSL_free(ctx); + } } static void kdf_scrypt_reset(void *vctx) diff --git a/providers/implementations/kdfs/sshkdf.c b/providers/implementations/kdfs/sshkdf.c index d5484f4acb..508fb6350a 100644 --- a/providers/implementations/kdfs/sshkdf.c +++ b/providers/implementations/kdfs/sshkdf.c @@ -63,8 +63,10 @@ static void kdf_sshkdf_free(void *vctx) { KDF_SSHKDF *ctx = (KDF_SSHKDF *)vctx; - kdf_sshkdf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + kdf_sshkdf_reset(ctx); + OPENSSL_free(ctx); + } } static void kdf_sshkdf_reset(void *vctx) diff --git a/providers/implementations/kdfs/sskdf.c b/providers/implementations/kdfs/sskdf.c index 4f69eec7f6..2c4600d205 100644 --- a/providers/implementations/kdfs/sskdf.c +++ b/providers/implementations/kdfs/sskdf.c @@ -315,8 +315,10 @@ static void sskdf_free(void *vctx) { KDF_SSKDF *ctx = (KDF_SSKDF *)vctx; - sskdf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + sskdf_reset(ctx); + OPENSSL_free(ctx); + } } static int sskdf_set_buffer(unsigned char **out, size_t *out_len, diff --git a/providers/implementations/kdfs/tls1_prf.c b/providers/implementations/kdfs/tls1_prf.c index 0a83753a8a..84d712afc5 100644 --- a/providers/implementations/kdfs/tls1_prf.c +++ b/providers/implementations/kdfs/tls1_prf.c @@ -106,8 +106,10 @@ static void kdf_tls1_prf_free(void *vctx) { TLS1_PRF *ctx = (TLS1_PRF *)vctx; - kdf_tls1_prf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + kdf_tls1_prf_reset(ctx); + OPENSSL_free(ctx); + } } static void kdf_tls1_prf_reset(void *vctx) diff --git a/providers/implementations/kdfs/x942kdf.c b/providers/implementations/kdfs/x942kdf.c index 5a84d50968..1459e0f661 100644 --- a/providers/implementations/kdfs/x942kdf.c +++ b/providers/implementations/kdfs/x942kdf.c @@ -266,8 +266,10 @@ static void x942kdf_free(void *vctx) { KDF_X942 *ctx = (KDF_X942 *)vctx; - x942kdf_reset(ctx); - OPENSSL_free(ctx); + if (ctx != NULL) { + x942kdf_reset(ctx); + OPENSSL_free(ctx); + } } static int x942kdf_set_buffer(unsigned char **out, size_t *out_len, |