s3:smbd: consistently use talloc_tos() memory for rpc_pipe_open_interface()
authorStefan Metzmacher <metze@samba.org>
Mon, 10 Jul 2017 09:29:58 +0000 (11:29 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 10 Jul 2017 21:22:10 +0000 (23:22 +0200)
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 <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/lanman.c
source3/smbd/reply.c

index c3e540ff8106994aa0f6bfa23d732ecb61670723..6854527500dd723bb8d358f73915a8b6188c0e89 100644 (file)
@@ -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,
@@ -1029,7 +1029,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,
@@ -3144,7 +3144,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,
@@ -3273,7 +3273,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,
@@ -3456,7 +3456,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,
@@ -4601,7 +4601,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,
@@ -4744,7 +4744,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,
@@ -4945,7 +4945,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,
@@ -5078,7 +5078,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,
@@ -5390,7 +5390,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,
index e430a8e2d0f00e181ac6c3a6e617253bb3780d53..d102b7a876ca9e43d43f431827866df75ef25cf7 100644 (file)
@@ -5942,7 +5942,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,