The branch, master has been updated via 17a77ea Fix a really slow memory leak (in master at least). Found by Ira Cooper <i...@wakeful.net>. from 633a28b s3:auth/auth_generic: for now call sub_set_smb_name() and lp_load()
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 17a77ea9b484a7040098fc66cf78625df4c14c65 Author: Jeremy Allison <j...@samba.org> Date: Thu Jan 26 14:53:43 2012 -0800 Fix a really slow memory leak (in master at least). Found by Ira Cooper <i...@wakeful.net>. Bug #8724 - Memory leak in parent smbd on connection. Autobuild-User: Jeremy Allison <j...@samba.org> Autobuild-Date: Fri Jan 27 01:26:28 CET 2012 on sn-devel-104 ----------------------------------------------------------------------- Summary of changes: source3/lib/substitute.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c index eae6d15..5427ed8 100644 --- a/source3/lib/substitute.c +++ b/source3/lib/substitute.c @@ -195,7 +195,7 @@ void sub_set_smb_name(const char *name) } static char sub_peeraddr[INET6_ADDRSTRLEN]; -static const char *sub_peername = ""; +static const char *sub_peername = NULL; static char sub_sockaddr[INET6_ADDRSTRLEN]; void sub_set_socket_ids(const char *peeraddr, const char *peername, @@ -208,6 +208,11 @@ void sub_set_socket_ids(const char *peeraddr, const char *peername, } strlcpy(sub_peeraddr, addr, sizeof(sub_peeraddr)); + if (sub_peername != NULL && + sub_peername != sub_peeraddr) { + free(discard_const_p(char,sub_peername)); + sub_peername = NULL; + } sub_peername = SMB_STRDUP(peername); if (sub_peername == NULL) { sub_peername = sub_peeraddr; @@ -547,7 +552,7 @@ static char *alloc_sub_basic(const char *smb_name, const char *domain_name, break; case 'M' : a_string = realloc_string_sub(a_string, "%M", - sub_peername); + sub_peername ? sub_peername : ""); break; case 'R' : a_string = realloc_string_sub(a_string, "%R", remote_proto); -- Samba Shared Repository