s3:smb2_sesssetup: change talloc hierarchy in smbd_smb2_session_setup_gensec_done
authorMichael Adam <obnox@samba.org>
Wed, 29 Jul 2015 15:07:29 +0000 (17:07 +0200)
committerJeremy Allison <jra@samba.org>
Thu, 10 Sep 2015 16:32:15 +0000 (18:32 +0200)
Only put session_info to the session->global context if we use it.

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/smb2_sesssetup.c

index 7d1aaf54f5c96e2b00f7e4ca61f2421883c84056..9ba9c7626105483ff186acffce71cde8ee5e64b8 100644 (file)
@@ -439,7 +439,8 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session,
        reload_services(smb2req->sconn, conn_snum_used, true);
 
        session->status = NT_STATUS_OK;
-       session->global->auth_session_info = session_info;
+       session->global->auth_session_info = talloc_move(session->global,
+                                                        &session_info);
        session->global->auth_session_info_seqnum += 1;
        session->global->channels[0].auth_session_info_seqnum =
                session->global->auth_session_info_seqnum;
@@ -511,7 +512,8 @@ static NTSTATUS smbd_smb2_reauth_generic_return(struct smbXsrv_session *session,
 
        session->status = NT_STATUS_OK;
        TALLOC_FREE(session->global->auth_session_info);
-       session->global->auth_session_info = session_info;
+       session->global->auth_session_info = talloc_move(session->global,
+                                                        &session_info);
        session->global->auth_session_info_seqnum += 1;
        session->global->channels[0].auth_session_info_seqnum =
                session->global->auth_session_info_seqnum;
@@ -714,7 +716,7 @@ static void smbd_smb2_session_setup_gensec_done(struct tevent_req *subreq)
        }
 
        status = gensec_session_info(state->auth->gensec,
-                                    state->session->global,
+                                    state,
                                     &state->session_info);
        if (tevent_req_nterror(req, status)) {
                return;