s3-auth Restore shortcut for guest security token
authorAndrew Bartlett <abartlet@samba.org>
Wed, 21 Dec 2011 06:26:23 +0000 (17:26 +1100)
committerStefan Metzmacher <metze@samba.org>
Thu, 22 Dec 2011 14:51:09 +0000 (15:51 +0100)
This was lost when the server_info and session_info structures were split.

This helps avoid doing lookups for the guest account to determine the
uid/gid and SID values.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Dec 22 15:51:09 CET 2011 on sn-devel-104

source3/auth/auth_util.c

index fcfed834e523b6457e4d3760b2efd0eef3a59eb7..4c9ebc01c8f699aa7125f13e440bf317d275401f 100644 (file)
@@ -520,7 +520,17 @@ NTSTATUS create_local_token(TALLOC_CTX *mem_ctx,
                                                              server_info->session_key.length);
        }
 
-       if (session_info->security_token) {
+       /* We need to populate session_info->info with the information found in server_info->info3 */
+       status = make_user_info_SamBaseInfo(session_info, "", &server_info->info3->base,
+                                           server_info->guest == false,
+                                           &session_info->info);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0, ("conversion of info3 into auth_user_info failed!\n"));
+               TALLOC_FREE(session_info);
+               return status;
+       }
+
+       if (server_info->security_token) {
                /* Just copy the token, it has already been finalised
                 * (nasty hack to support a cached guest session_info,
                 * and a possible strategy for auth_samba4 to pass in
@@ -545,16 +555,6 @@ NTSTATUS create_local_token(TALLOC_CTX *mem_ctx,
                return NT_STATUS_OK;
        }
 
-       /* We need to populate session_info->info with the information found in server_info->info3 */
-       status = make_user_info_SamBaseInfo(session_info, "", &server_info->info3->base,
-                                           server_info->guest == false,
-                                           &session_info->info);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0, ("conversion of info3 into auth_user_info failed!\n"));
-               TALLOC_FREE(session_info);
-               return status;
-       }
-
        /*
         * If winbind is not around, we can not make much use of the SIDs the
         * domain controller provided us with. Likewise if the user name was