From c04f73e7183c9c1b7c1454e9b14d9293f0022e9a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 10 Jul 2017 11:29:58 +0200 Subject: [PATCH] s3:smbd: consistently use talloc_tos() memory for rpc_pipe_open_interface() The result is only used temporary and should not be leaked on a long term memory context as 'conn'. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12890 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison (cherry picked from commit 77cbced5d2f8bf65c8d02f5edfaba8cbad519d08) --- source3/smbd/lanman.c | 20 ++++++++++---------- source3/smbd/reply.c | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c index 995ed08..985566f 100644 --- a/source3/smbd/lanman.c +++ b/source3/smbd/lanman.c @@ -831,7 +831,7 @@ static bool api_DosPrintQGetInfo(struct smbd_server_connection *sconn, goto out; } - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -1028,7 +1028,7 @@ static bool api_DosPrintQEnum(struct smbd_server_connection *sconn, return(True); } - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -3140,7 +3140,7 @@ static bool api_RDosPrintJobDel(struct smbd_server_connection *sconn, ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -3268,7 +3268,7 @@ static bool api_WPrintQueueCtrl(struct smbd_server_connection *sconn, ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -3450,7 +3450,7 @@ static bool api_PrintJobInfo(struct smbd_server_connection *sconn, ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -4592,7 +4592,7 @@ static bool api_WPrintJobGetInfo(struct smbd_server_connection *sconn, ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -4734,7 +4734,7 @@ static bool api_WPrintJobEnumerate(struct smbd_server_connection *sconn, ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -4934,7 +4934,7 @@ static bool api_WPrintDestGetInfo(struct smbd_server_connection *sconn, ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -5066,7 +5066,7 @@ static bool api_WPrintDestEnum(struct smbd_server_connection *sconn, queuecnt = 0; - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, @@ -5377,7 +5377,7 @@ static bool api_RNetSessionEnum(struct smbd_server_connection *sconn, return False; } - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc, conn->session_info, conn->sconn->remote_address, diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 6acbaca..82dcbba 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -5950,7 +5950,7 @@ void reply_printqueue(struct smb_request *req) ZERO_STRUCT(handle); - status = rpc_pipe_open_interface(conn, + status = rpc_pipe_open_interface(mem_ctx, &ndr_table_spoolss, conn->session_info, conn->sconn->remote_address, -- 1.9.1