From afc9a770c0ec9f23296fc01a9d97f139c4f43b82 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 6 Jul 2013 10:46:11 +0200 Subject: [PATCH 1/3] smbd: Fix a memleak in reload_printers_full Signed-off-by: Volker Lendecke --- source3/smbd/server_reload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c index 9e28a72..e215a1c 100644 --- a/source3/smbd/server_reload.c +++ b/source3/smbd/server_reload.c @@ -91,7 +91,7 @@ void reload_printers_full(struct tevent_context *ev, n_services = lp_numservices(); pnum = lp_servicenumber(PRINTERS_NAME); - status = make_session_info_system(talloc_new(NULL), &session_info); + status = make_session_info_system(NULL, &session_info); if (!NT_STATUS_IS_OK(status)) { DEBUG(3, ("Could not create system session_info\n")); /* can't remove stale printers before we -- 1.7.9.5 From 57c55873af9df39c16805658071780c8f819f222 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 6 Jul 2013 10:52:30 +0200 Subject: [PATCH 2/3] smbd: Add a talloc_stackframe to reload_printers_full Signed-off-by: Volker Lendecke --- source3/smbd/server_reload.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c index e215a1c..5617d4d 100644 --- a/source3/smbd/server_reload.c +++ b/source3/smbd/server_reload.c @@ -80,6 +80,7 @@ void reload_printers(struct tevent_context *ev, void reload_printers_full(struct tevent_context *ev, struct messaging_context *msg_ctx) { + TALLOC_CTX *frame = talloc_stackframe(); struct auth_serversupplied_info *session_info = NULL; int n_services; int pnum; @@ -91,11 +92,12 @@ void reload_printers_full(struct tevent_context *ev, n_services = lp_numservices(); pnum = lp_servicenumber(PRINTERS_NAME); - status = make_session_info_system(NULL, &session_info); + status = make_session_info_system(talloc_tos(), &session_info); if (!NT_STATUS_IS_OK(status)) { DEBUG(3, ("Could not create system session_info\n")); /* can't remove stale printers before we * are fully initilized */ + TALLOC_FREE(frame); return; } @@ -144,7 +146,7 @@ void reload_printers_full(struct tevent_context *ev, /* finally, purge old snums */ reload_printers(ev, msg_ctx); - TALLOC_FREE(session_info); + TALLOC_FREE(frame); } /**************************************************************************** -- 1.7.9.5 From 718ae8b17621b0fde9724fd33de6ffe1244aff32 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 6 Jul 2013 10:53:45 +0200 Subject: [PATCH 3/3] smbd: Add a talloc_stackframe to reload_printers Signed-off-by: Volker Lendecke --- source3/smbd/server_reload.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c index 5617d4d..dcf46b9 100644 --- a/source3/smbd/server_reload.c +++ b/source3/smbd/server_reload.c @@ -36,6 +36,7 @@ void reload_printers(struct tevent_context *ev, struct messaging_context *msg_ctx) { + TALLOC_CTX *frame = talloc_stackframe(); int n_services; int pnum; int snum; @@ -72,6 +73,7 @@ void reload_printers(struct tevent_context *ev, /* Make sure deleted printers are gone */ load_printers(ev, msg_ctx); + TALLOC_FREE(frame); } /**************************************************************************** -- 1.7.9.5