From: Andreas Schneider Date: Thu, 9 Aug 2018 14:05:41 +0000 (+0200) Subject: s3:passdb: Don't leak memory on error in fetch_ldap_pw() X-Git-Tag: ldb-1.5.0~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e4f4f5eb7303a0cce4f426dd9cfd1d6a488495b0;p=thirdparty%2Fsamba.git s3:passdb: Don't leak memory on error in fetch_ldap_pw() Found by covscan. A candidate to use tallac ... BUG: https://bugzilla.samba.org/show_bug.cgi?id=13567 Pair-Programmed-With: Justin Stephenson Signed-off-by: Andreas Schneider Signed-off-by: Justin Stephenson Reviewed-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c index 7533d6b842f..ce215b1f2b2 100644 --- a/source3/passdb/secrets.c +++ b/source3/passdb/secrets.c @@ -351,6 +351,8 @@ bool fetch_ldap_pw(char **dn, char** pw) if (!old_style_key) { DEBUG(0, ("fetch_ldap_pw: strdup failed!\n")); + SAFE_FREE(*pw); + SAFE_FREE(*dn); return False; } @@ -361,6 +363,7 @@ bool fetch_ldap_pw(char **dn, char** pw) if ((data == NULL) || (size < sizeof(old_style_pw))) { DEBUG(0,("fetch_ldap_pw: neither ldap secret retrieved!\n")); SAFE_FREE(old_style_key); + SAFE_FREE(*pw); SAFE_FREE(*dn); SAFE_FREE(data); return False; @@ -375,6 +378,7 @@ bool fetch_ldap_pw(char **dn, char** pw) if (!secrets_store_ldap_pw(*dn, old_style_pw)) { DEBUG(0,("fetch_ldap_pw: ldap secret could not be upgraded!\n")); SAFE_FREE(old_style_key); + SAFE_FREE(*pw); SAFE_FREE(*dn); return False; }