From: Andreas Schneider Date: Thu, 26 Oct 2023 12:28:19 +0000 (+0200) Subject: s3:passdb: Do not leak memory if memcache add fails X-Git-Tag: talloc-2.4.2~978 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b3234c55743d8329ba1d387943865b23233e22c7;p=thirdparty%2Fsamba.git s3:passdb: Do not leak memory if memcache add fails Indirect leak of 496 byte(s) in 1 object(s) allocated from: #0 0x7ffb062dc03f in malloc (/lib64/libasan.so.8+0xdc03f) (BuildId: 3e1694ad218c99a8b1b69231666a27df63cf19d0) #1 0x7ffb06025b3e in __talloc_with_prefix ../../lib/talloc/talloc.c:783 #2 0x7ffb06027512 in __talloc ../../lib/talloc/talloc.c:825 #3 0x7ffb06027512 in _talloc_named_const ../../lib/talloc/talloc.c:982 #4 0x7ffb06027512 in _talloc_zero ../../lib/talloc/talloc.c:2421 #5 0x7ffb05a0332c in samu_new ../../source3/passdb/passdb.c:63 #6 0x7ffb05a2031f in pdb_getsampwnam ../../source3/passdb/pdb_interface.c:351 #7 0x7ffb05a0540b in local_password_change ../../source3/passdb/passdb.c:752 #8 0x56291ddd4b8b in password_change ../../source3/utils/smbpasswd.c:273 #9 0x56291ddd5b59 in process_root ../../source3/utils/smbpasswd.c:478 #10 0x56291ddd5b59 in main ../../source3/utils/smbpasswd.c:661 #11 0x7ffb024281af in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c index cee90d9ff79..d3648f155ed 100644 --- a/source3/passdb/pdb_interface.c +++ b/source3/passdb/pdb_interface.c @@ -360,9 +360,13 @@ bool pdb_getsampwnam(struct samu *sam_acct, const char *username) user_sid = pdb_get_user_sid(for_cache); - memcache_add_talloc(NULL, PDB_GETPWSID_CACHE, - data_blob_const(user_sid, sizeof(*user_sid)), - &for_cache); + ok = memcache_add_talloc(NULL, + PDB_GETPWSID_CACHE, + data_blob_const(user_sid, sizeof(*user_sid)), + &for_cache); + if (!ok) { + TALLOC_FREE(for_cache); + } return True; }