From: Peiwei Hu Date: Tue, 4 Jan 2022 01:10:32 +0000 (+0800) Subject: apps/passwd.c: free before error exiting X-Git-Tag: openssl-3.2.0-alpha1~3137 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea4d16bc60dee53feb71997c1e78379eeb69b7ac;p=thirdparty%2Fopenssl.git apps/passwd.c: free before error exiting use goto instead of returning directly while error handling Signed-off-by: Peiwei Hu Reviewed-by: Ben Kaduk Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/17404) --- diff --git a/apps/passwd.c b/apps/passwd.c index bcb88041141..e024e8de7ea 100644 --- a/apps/passwd.c +++ b/apps/passwd.c @@ -410,7 +410,7 @@ static char *md5crypt(const char *passwd, const char *magic, const char *salt) n >>= 1; } if (!EVP_DigestFinal_ex(md, buf, NULL)) - return NULL; + goto err; for (i = 0; i < 1000; i++) { if (!EVP_DigestInit_ex(md2, EVP_md5(), NULL)) @@ -636,7 +636,7 @@ static char *shacrypt(const char *passwd, const char *magic, const char *salt) n >>= 1; } if (!EVP_DigestFinal_ex(md, buf, NULL)) - return NULL; + goto err; /* P sequence */ if (!EVP_DigestInit_ex(md2, sha, NULL)) @@ -647,7 +647,7 @@ static char *shacrypt(const char *passwd, const char *magic, const char *salt) goto err; if (!EVP_DigestFinal_ex(md2, temp_buf, NULL)) - return NULL; + goto err; if ((p_bytes = OPENSSL_zalloc(passwd_len)) == NULL) goto err; @@ -664,7 +664,7 @@ static char *shacrypt(const char *passwd, const char *magic, const char *salt) goto err; if (!EVP_DigestFinal_ex(md2, temp_buf, NULL)) - return NULL; + goto err; if ((s_bytes = OPENSSL_zalloc(salt_len)) == NULL) goto err;