rpc: Don't crash if npa_accept fails
authorVolker Lendecke <vl@samba.org>
Tue, 2 Apr 2019 14:37:39 +0000 (16:37 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 3 Apr 2019 16:55:27 +0000 (16:55 +0000)
We can only rely on session_info_transport to be filled correctly upon
success of the accept_existing_recv function

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/rpc_server/rpc_server.c

index 0230d73abb24934c2be3eed82cc80b1e49027627..f0870c881742e587ad12d8fc4c034704b1d64192 100644 (file)
@@ -357,8 +357,6 @@ static void named_pipe_accept_done(struct tevent_req *subreq)
                                                &npc->local_server_name,
                                                &session_info_transport);
 
-       npc->session_info = talloc_move(npc, &session_info_transport->session_info);
-
        TALLOC_FREE(subreq);
        if (ret != 0) {
                DEBUG(2, ("Failed to accept named pipe connection! (%s)\n",
@@ -367,6 +365,9 @@ static void named_pipe_accept_done(struct tevent_req *subreq)
                return;
        }
 
+       npc->session_info = talloc_move(
+               npc, &session_info_transport->session_info);
+
        ret = make_server_pipes_struct(npc,
                                       npc->msg_ctx,
                                       npc->pipe_name, NCACN_NP,