1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-05 12:22:11 +03:00

s3:smbd: change user_struct->vuid to uint64_t

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
This commit is contained in:
Stefan Metzmacher
2012-06-05 18:17:15 +02:00
parent bb27bb081e
commit 02d9ba6ee1
8 changed files with 37 additions and 35 deletions

View File

@ -167,7 +167,7 @@
#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

View 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

View 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,8 +256,8 @@ int register_homes_share(const char *username)
*
*/
int register_existing_vuid(struct smbd_server_connection *sconn,
uint16 vuid,
uint64_t register_existing_vuid(struct smbd_server_connection *sconn,
uint64_t vuid,
struct auth_session_info *session_info,
DATA_BLOB response_blob)
{
@ -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;
}

View 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;

View File

@ -688,16 +688,16 @@ 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,
uint64_t register_existing_vuid(struct smbd_server_connection *sconn,
uint64_t vuid,
struct auth_session_info *session_info,
DATA_BLOB response_blob);

View 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);

View 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;

View 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;
}