From bb6550c2881669a60f07f6c31087552b8fcff118 Mon Sep 17 00:00:00 2001 From: Hemanth Thummala Date: Tue, 24 May 2016 23:15:04 -0700 Subject: [PATCH] Fix memory leak in share mode locking. Not freeing up(and reparenting to NULL context) ndr buffer used for TDB updates resulting in huge memory leak when there in high volume of opens and closes happening on same object. Free the buffer before reparenting its parent to NULL context. https://bugzilla.samba.org/show_bug.cgi?id=11934 Signed-off-by: Hemanth Thummala Signed-off-by: Saji VR Reviewed-by: Jeremy Allison Reviewed-by: Volker Lendecke Autobuild-User(master): Volker Lendecke Autobuild-Date(master): Fri May 27 18:43:31 CEST 2016 on sn-devel-144 (cherry picked from commit 7a725eea25f905fc5f611e8f3d7cfe414d5cf913) --- source3/locking/share_mode_lock.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c index fe105e3..4e9de03 100644 --- a/source3/locking/share_mode_lock.c +++ b/source3/locking/share_mode_lock.c @@ -441,6 +441,11 @@ static int share_mode_data_destructor(struct share_mode_data *d) TALLOC_FREE(d->record); /* + * Release the dptr as well before reparenting to NULL + * (in-memory cache) context. + */ + TALLOC_FREE(data.dptr); + /* * Reparent d into the in-memory cache so it can be reused if the * sequence number matches. See parse_share_modes() * for details. -- 2.8.0.rc3.226.g39d4020