diff options
author | Andreas Schneider <asn@samba.org> | 2018-08-09 16:05:41 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-08-23 10:39:15 +0200 |
commit | 1000cbe1c7acf8e018ff1ed7a150532a7ba2ee83 (patch) | |
tree | 7b45bc41a7b6eeb0041f88813ddaed30c8aa705d /source3/passdb/secrets.c | |
parent | 2431f54365a85581b6829f8d589b17f183b47cc0 (diff) | |
download | samba-1000cbe1c7acf8e018ff1ed7a150532a7ba2ee83.tar.gz |
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 <jstephen@redhat.com>
Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Justin Stephenson <jstephen@redhat.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit e4f4f5eb7303a0cce4f426dd9cfd1d6a488495b0)
Diffstat (limited to 'source3/passdb/secrets.c')
-rw-r--r-- | source3/passdb/secrets.c | 4 |
1 files changed, 4 insertions, 0 deletions
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; } |