X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=src%2Fpatches%2Fsamba%2Fsamba-3.6.99-fix_memleak_winbind_cached_creds.patch;fp=src%2Fpatches%2Fsamba%2Fsamba-3.6.99-fix_memleak_winbind_cached_creds.patch;h=0000000000000000000000000000000000000000;hp=6de8a211de25d208075b62921fc421e6a8faa6ce;hb=1dd31d858ecc4d37fa9c895b59e2b752cc124818;hpb=b3e5529459d4dec78aa07b08b4ccfacdc449c3f9 diff --git a/src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch b/src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch deleted file mode 100644 index 6de8a211de..0000000000 --- a/src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch +++ /dev/null @@ -1,46 +0,0 @@ -From cf53bff0e8482e35068d8e894af5634a0a9b1399 Mon Sep 17 00:00:00 2001 -From: Andreas Schneider -Date: Wed, 29 Jun 2016 13:38:19 +0200 -Subject: [PATCH] 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 -Reviewed-by: Guenther Deschner ---- - source3/winbindd/winbindd_cache.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c -index 82c8087..2e983cd 100644 ---- a/source3/winbindd/winbindd_cache.c -+++ b/source3/winbindd/winbindd_cache.c -@@ -3415,7 +3415,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; -@@ -3484,7 +3484,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; --- -2.9.0 -