s3:smb2_sesssetup: let smbd_smb2_auth_generic_return() cope with channels
authorMichael Adam <obnox@samba.org>
Wed, 29 Jul 2015 15:42:55 +0000 (17:42 +0200)
committerJeremy Allison <jra@samba.org>
Thu, 10 Sep 2015 16:32:15 +0000 (18:32 +0200)
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 9ba9c7626105483ff186acffce71cde8ee5e64b8..2755b7920560b1425b308cbd712d08daceca6047 100644 (file)
@@ -190,6 +190,7 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session,
        struct smbXsrv_session *x = session;
        struct smbXsrv_session_auth0 *auth = *_auth;
        struct smbXsrv_connection *xconn = smb2req->xconn;
+       size_t i;
        struct _derivation {
                DATA_BLOB label;
                DATA_BLOB context;
@@ -208,7 +209,6 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session,
                struct _derivation *d;
                DATA_BLOB p;
                struct hc_sha512state sctx;
-               size_t i;
 
                preauth = talloc_move(smb2req, &auth->preauth);
 
@@ -442,8 +442,13 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session,
        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;
+       for (i=0; i < session->global->num_channels; i++) {
+               struct smbXsrv_channel_global0 *_c =
+                       &session->global->channels[i];
+
+               _c->auth_session_info_seqnum =
+                       session->global->auth_session_info_seqnum;
+       }
        session->global->auth_time = timeval_to_nttime(&smb2req->request_time);
        session->global->expiration_time = gensec_expire_time(auth->gensec);