From: Pauli Date: Sun, 26 Apr 2020 21:32:43 +0000 (+1000) Subject: param bld: avoid freeing the param builder structure on error paths. X-Git-Tag: openssl-3.0.0-alpha2~135 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=92f0684d11de6e7ff35cd14d26160545451d1ea6 param bld: avoid freeing the param builder structure on error paths. The param builder was recently modified so that it doesn't free the passed in param builder structure. Some of the error paths didn't get synced up with this change and resulted in double frees. Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/11651) --- diff --git a/crypto/param_build.c b/crypto/param_build.c index c4624ec33e..43b194bcea 100644 --- a/crypto/param_build.c +++ b/crypto/param_build.c @@ -361,14 +361,12 @@ OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld) if (s == NULL) { CRYPTOerr(CRYPTO_F_OSSL_PARAM_BLD_TO_PARAM, CRYPTO_R_SECURE_MALLOC_FAILURE); - OPENSSL_free(bld); return NULL; } } params = OPENSSL_malloc(total); if (params == NULL) { CRYPTOerr(CRYPTO_F_OSSL_PARAM_BLD_TO_PARAM, ERR_R_MALLOC_FAILURE); - OPENSSL_free(bld); OPENSSL_secure_free(s); return NULL; }