s3:smbd: change user_struct->vuid to uint64_t
authorStefan Metzmacher <metze@samba.org>
Tue, 5 Jun 2012 16:17:15 +0000 (18:17 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 6 Jun 2012 10:07:33 +0000 (12:07 +0200)
Only sconn->smb1.sessions.next_vuid remains as uint16_t,
so that we do not generate larger values yet.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Wed Jun  6 12:07:33 CEST 2012 on sn-devel-104

source3/include/local.h
source3/smbd/globals.h
source3/smbd/password.c
source3/smbd/process.c
source3/smbd/proto.h
source3/smbd/session.c
source3/smbd/sesssetup.c
source3/smbd/smb2_sesssetup.c

index 11166df5f076d42571f8802db639fd6bfcc176e1..653c6714c25ba30937f7e893bf70dddde6f1aef3 100644 (file)
 
 #ifndef SESSION_TEMPLATE
 /* Paramaters are 'pid' and 'vuid' */
-#define SESSION_TEMPLATE "smb/%lu/%d"
+#define SESSION_TEMPLATE "smb/%lu/%llu"
 #endif
 
 #ifndef SESSION_UTMP_TEMPLATE
index f3f75aeb0829362d97804fae33d9010f502913ee..a0d5be022659b326c8af36cea0582995e2303141 100644 (file)
@@ -476,7 +476,7 @@ struct pending_auth_data;
 
 struct user_struct {
        struct user_struct *next, *prev;
-       uint16 vuid; /* Tag for this entry. */
+       uint64_t vuid; /* Tag for this entry. */
 
        char *session_keystr; /* used by utmp and pam session code.
                                 TDB key string */
@@ -590,7 +590,7 @@ struct smbd_server_connection {
                         *  Set by us for CORE protocol.
                         */
                        int max_send;
-                       uint16_t last_session_tag;
+                       uint64_t last_session_tag;
 
                        /*
                         * this holds info on user ids that are already
index c1561f188454d47142b5b44bc3cb75e1dd85b3ca..e8b48c464d85e8f42b332ca9cf3a1fd99096e597 100644 (file)
@@ -43,7 +43,7 @@ enum server_allocated_state { SERVER_ALLOCATED_REQUIRED_YES,
 
 static struct user_struct *get_valid_user_struct_internal(
                        struct smbd_server_connection *sconn,
-                       uint16 vuid,
+                       uint64_t vuid,
                        enum server_allocated_state server_allocated)
 {
        struct user_struct *usp;
@@ -85,13 +85,13 @@ static struct user_struct *get_valid_user_struct_internal(
 ****************************************************************************/
 
 struct user_struct *get_valid_user_struct(struct smbd_server_connection *sconn,
-                                  uint16 vuid)
+                                         uint64_t vuid)
 {
        return get_valid_user_struct_internal(sconn, vuid,
                        SERVER_ALLOCATED_REQUIRED_YES);
 }
 
-bool is_partial_auth_vuid(struct smbd_server_connection *sconn, uint16 vuid)
+bool is_partial_auth_vuid(struct smbd_server_connection *sconn, uint64_t vuid)
 {
        return (get_partial_auth_user_struct(sconn, vuid) != NULL);
 }
@@ -101,7 +101,7 @@ bool is_partial_auth_vuid(struct smbd_server_connection *sconn, uint16 vuid)
 ****************************************************************************/
 
 struct user_struct *get_partial_auth_user_struct(struct smbd_server_connection *sconn,
-                                         uint16 vuid)
+                                                uint64_t vuid)
 {
        return get_valid_user_struct_internal(sconn, vuid,
                        SERVER_ALLOCATED_REQUIRED_NO);
@@ -111,7 +111,7 @@ struct user_struct *get_partial_auth_user_struct(struct smbd_server_connection *
  Invalidate a uid.
 ****************************************************************************/
 
-void invalidate_vuid(struct smbd_server_connection *sconn, uint16 vuid)
+void invalidate_vuid(struct smbd_server_connection *sconn, uint64_t vuid)
 {
        struct user_struct *vuser = NULL;
 
@@ -167,7 +167,7 @@ static void increment_next_vuid(uint16_t *vuid)
  Create a new partial auth user struct.
 *****************************************************/
 
-int register_initial_vuid(struct smbd_server_connection *sconn)
+uint64_t register_initial_vuid(struct smbd_server_connection *sconn)
 {
        struct user_struct *vuser;
 
@@ -256,10 +256,10 @@ int register_homes_share(const char *username)
  *
  */
 
-int register_existing_vuid(struct smbd_server_connection *sconn,
-                       uint16 vuid,
-                       struct auth_session_info *session_info,
-                       DATA_BLOB response_blob)
+uint64_t register_existing_vuid(struct smbd_server_connection *sconn,
+                               uint64_t vuid,
+                               struct auth_session_info *session_info,
+                               DATA_BLOB response_blob)
 {
        struct user_struct *vuser;
        bool guest = security_session_user_level(session_info, NULL) < SECURITY_USER;
@@ -299,13 +299,14 @@ int register_existing_vuid(struct smbd_server_connection *sconn,
        SMB_ASSERT(vuser->session_info->unix_token);
 
        DEBUG(3,("register_existing_vuid: UNIX uid %d is UNIX user %s, "
-               "and will be vuid %u\n", (int)vuser->session_info->unix_token->uid,
-                vuser->session_info->unix_info->unix_name, vuser->vuid));
+               "and will be vuid %llu\n", (int)vuser->session_info->unix_token->uid,
+                vuser->session_info->unix_info->unix_name,
+                (unsigned long long)vuser->vuid));
 
        if (!session_claim(sconn, vuser)) {
                DEBUG(1, ("register_existing_vuid: Failed to claim session "
-                       "for vuid=%d\n",
-                       vuser->vuid));
+                       "for vuid=%llu\n",
+                       (unsigned long long)vuser->vuid));
                goto fail;
        }
 
index 496622c9b40a83d3539f834ba353369a7424a947..30d0354223939b893f8d5365cff74bed0ad351f4 100644 (file)
@@ -1354,7 +1354,7 @@ static void smb_dump(const char *name, int type, const char *data)
 static connection_struct *switch_message(uint8 type, struct smb_request *req)
 {
        int flags;
-       uint16 session_tag;
+       uint64_t session_tag;
        connection_struct *conn = NULL;
        struct smbd_server_connection *sconn = req->sconn;
 
index 5327b06b2892dc191bd14e5ee64ce00b59f44305..d58115703d3b7ac16cfa1c75d25744ad7452626e 100644 (file)
@@ -688,18 +688,18 @@ struct kernel_oplocks *linux_init_kernel_oplocks(struct smbd_server_connection *
 /* The following definitions come from smbd/password.c  */
 
 struct user_struct *get_valid_user_struct(struct smbd_server_connection *sconn,
-                                  uint16 vuid);
-bool is_partial_auth_vuid(struct smbd_server_connection *sconn, uint16 vuid);
+                                         uint64_t vuid);
+bool is_partial_auth_vuid(struct smbd_server_connection *sconn, uint64_t vuid);
 struct user_struct *get_partial_auth_user_struct(struct smbd_server_connection *sconn,
-                                         uint16 vuid);
-void invalidate_vuid(struct smbd_server_connection *sconn, uint16 vuid);
+                                                uint64_t vuid);
+void invalidate_vuid(struct smbd_server_connection *sconn, uint64_t vuid);
 void invalidate_all_vuids(struct smbd_server_connection *sconn);
-int register_initial_vuid(struct smbd_server_connection *sconn);
+uint64_t register_initial_vuid(struct smbd_server_connection *sconn);
 int register_homes_share(const char *username);
-int register_existing_vuid(struct smbd_server_connection *sconn,
-                       uint16 vuid,
-                       struct auth_session_info *session_info,
-                       DATA_BLOB response_blob);
+uint64_t register_existing_vuid(struct smbd_server_connection *sconn,
+                               uint64_t vuid,
+                               struct auth_session_info *session_info,
+                               DATA_BLOB response_blob);
 
 /* The following definitions come from smbd/pipes.c  */
 
index a98ef51016ad680d1d1ef077bbafa5104f360ebc..47eafab9799a6e09c79923784caa893c65427088 100644 (file)
@@ -119,8 +119,9 @@ bool session_claim(struct smbd_server_connection *sconn, struct user_struct *vus
                         SESSION_UTMP_TEMPLATE, i);
        } else
        {
-               snprintf(keystr, sizeof(keystr), "ID/%s/%u",
-                        procid_str_static(&pid), vuser->vuid);
+               snprintf(keystr, sizeof(keystr), "ID/%s/%llu",
+                        procid_str_static(&pid),
+                        (unsigned long long)vuser->vuid);
 
                rec = sessionid_fetch_record(NULL, keystr);
                if (rec == NULL) {
@@ -130,7 +131,7 @@ bool session_claim(struct smbd_server_connection *sconn, struct user_struct *vus
 
                snprintf(sessionid.id_str, sizeof(sessionid.id_str),
                         SESSION_TEMPLATE, (long unsigned int)getpid(),
-                        vuser->vuid);
+                        (unsigned long long)vuser->vuid);
        }
 
        SMB_ASSERT(rec != NULL);
index a3c6ede818bce3a3e85296a1a67c71ae3e453c7d..7cef73339aa5d0d520f30ed7b10b0df55288f905 100644 (file)
@@ -126,7 +126,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
        const char *p2;
        uint16 data_blob_len = SVAL(req->vwv+7, 0);
        enum remote_arch_types ra_type = get_remote_arch();
-       int vuid = req->vuid;
+       uint64_t vuid = req->vuid;
        struct user_struct *vuser = NULL;
        NTSTATUS status = NT_STATUS_OK;
        struct smbd_server_connection *sconn = req->sconn;
@@ -259,7 +259,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
 
        if (NT_STATUS_IS_OK(status)) {
                struct auth_session_info *session_info = NULL;
-               int tmp_vuid;
+               uint64_t tmp_vuid;
 
                status = gensec_session_info(vuser->gensec_security,
                                             talloc_tos(),
@@ -391,7 +391,7 @@ static void setup_new_vc_session(struct smbd_server_connection *sconn)
 
 void reply_sesssetup_and_X(struct smb_request *req)
 {
-       int sess_vuid;
+       uint64_t sess_vuid;
        int smb_bufsize;
        DATA_BLOB lm_resp;
        DATA_BLOB nt_resp;
index caf009aedc89982e472fd843eb5908a1d99854ea..36084a4df6841095cab04171988656ddb7c79919 100644 (file)
@@ -244,8 +244,8 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbd_smb2_session *session,
 
        if (!session_claim(session->sconn, session->compat_vuser)) {
                DEBUG(1, ("smb2: Failed to claim session "
-                       "for vuid=%d\n",
-                       session->compat_vuser->vuid));
+                       "for vuid=%llu\n",
+                       (unsigned long long)session->compat_vuser->vuid));
                TALLOC_FREE(session);
                return NT_STATUS_LOGON_FAILURE;
        }