]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:smbd: only mark real guest sessions with the GUEST flag
authorStefan Metzmacher <metze@samba.org>
Wed, 20 Apr 2016 14:34:28 +0000 (16:34 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 28 Apr 2016 14:51:17 +0000 (16:51 +0200)
Real anonymous sessions don't get it.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11847

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
source3/smbd/sesssetup.c
source3/smbd/smb2_sesssetup.c

index 88cbf97b20db54173350bed236b539c38b960a50..62dc49e186deff1c820aaeac0f3103647433fb23 100644 (file)
@@ -293,7 +293,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
                        return;
                }
 
-               if (security_session_user_level(session_info, NULL) < SECURITY_USER) {
+               if (security_session_user_level(session_info, NULL) == SECURITY_GUEST) {
                        action |= SMB_SETUP_GUEST;
                }
 
@@ -419,7 +419,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
                        return;
                }
 
-               if (security_session_user_level(session_info, NULL) < SECURITY_USER) {
+               if (security_session_user_level(session_info, NULL) == SECURITY_GUEST) {
                        action |= SMB_SETUP_GUEST;
                }
 
@@ -948,7 +948,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
                /* perhaps grab OS version here?? */
        }
 
-       if (security_session_user_level(session_info, NULL) < SECURITY_USER) {
+       if (security_session_user_level(session_info, NULL) == SECURITY_GUEST) {
                action |= SMB_SETUP_GUEST;
        }
 
index 78bda7b23335f4d5528abd843b07d5919c51ac43..821024fec185401c2cfa2e2c2a88754758e53b46 100644 (file)
@@ -278,11 +278,12 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session,
        }
 
        if (security_session_user_level(session_info, NULL) < SECURITY_USER) {
-               /* we map anonymous to guest internally */
-               *out_session_flags |= SMB2_SESSION_FLAG_IS_GUEST;
-               *out_session_flags |= SMB2_SESSION_FLAG_IS_NULL;
+               if (security_session_user_level(session_info, NULL) == SECURITY_GUEST) {
+                       *out_session_flags |= SMB2_SESSION_FLAG_IS_GUEST;
+               }
                /* force no signing */
                x->global->signing_flags &= ~SMBXSRV_SIGNING_REQUIRED;
+               /* we map anonymous to guest internally */
                guest = true;
        }