[SCM] Samba Shared Repository - branch v4-4-test updated
Karolin Seeger
kseeger at samba.org
Mon Jul 4 11:05:05 UTC 2016
The branch, v4-4-test has been updated
via a2353be s3-winbind: Fix memory leak with each cached credential login
from 8bac275 libutil: Support systemd 230
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-4-test
- Log -----------------------------------------------------------------
commit a2353bebe784505dad6f0b1f7c3f3d375b98ee0c
Author: Andreas Schneider <asn at samba.org>
Date: Wed Jun 29 13:38:19 2016 +0200
s3-winbind: Fix memory leak with each cached credential login
When we allow offline logon and have a lot of logins, windbind will leak
4k of memory which each log in. On systems with heavy load this can grow
quickly and the OOM killer will kill Winbind.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11999
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Guenther Deschner <gd at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Wed Jun 29 19:03:53 CEST 2016 on sn-devel-144
(cherry picked from commit 826f61960ec74deedc9d556a3b8fe04d9178dcd8)
Autobuild-User(v4-4-test): Karolin Seeger <kseeger at samba.org>
Autobuild-Date(v4-4-test): Mon Jul 4 13:04:53 CEST 2016 on sn-devel-144
-----------------------------------------------------------------------
Summary of changes:
source3/winbindd/winbindd_cache.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c
index cf3ed71..5dd9f4f 100644
--- a/source3/winbindd/winbindd_cache.c
+++ b/source3/winbindd/winbindd_cache.c
@@ -3471,7 +3471,7 @@ NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const
struct winbind_cache *cache = get_cache(domain);
NTSTATUS status;
int ret;
- struct cred_list *cred, *oldest = NULL;
+ struct cred_list *cred, *next, *oldest = NULL;
if (!cache->tdb) {
return NT_STATUS_INTERNAL_DB_ERROR;
@@ -3540,7 +3540,11 @@ NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const
status = NT_STATUS_UNSUCCESSFUL;
}
done:
- SAFE_FREE(wcache_cred_list);
+ for (cred = wcache_cred_list; cred; cred = next) {
+ next = cred->next;
+ DLIST_REMOVE(wcache_cred_list, cred);
+ SAFE_FREE(cred);
+ }
SAFE_FREE(oldest);
return status;
--
Samba Shared Repository
More information about the samba-cvs
mailing list