diff options
Diffstat (limited to 'source3/auth/auth_util.c')
| -rw-r--r-- | source3/auth/auth_util.c | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index f53f63df1f..fb1a207e72 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -508,7 +508,7 @@ NTSTATUS create_local_token(TALLOC_CTX *mem_ctx,  	    (server_info->nss_token)) {  		status = create_token_from_username(session_info,  						    session_info->unix_info->unix_name, -						    session_info->guest, +						    session_info->unix_info->guest,  						    &session_info->unix_token->uid,  						    &session_info->unix_token->gid,  						    &session_info->unix_info->unix_name, @@ -516,7 +516,7 @@ NTSTATUS create_local_token(TALLOC_CTX *mem_ctx,  	} else {  		status = create_local_nt_token_from_info3(session_info, -							  session_info->guest, +							  session_info->unix_info->guest,  							  session_info->info3,  							  &session_info->extra,  							  &session_info->security_token); @@ -978,7 +978,10 @@ static struct auth_serversupplied_info *copy_session_info_serverinfo(TALLOC_CTX  		return NULL;  	} -	dst->guest = src->guest; +	/* This element must be provided to convert back to an auth_serversupplied_info */ +	SMB_ASSERT(src->unix_info); + +	dst->guest = src->unix_info->guest;  	dst->system = src->system;  	/* This element must be provided to convert back to an auth_serversupplied_info */ @@ -1015,8 +1018,6 @@ static struct auth_serversupplied_info *copy_session_info_serverinfo(TALLOC_CTX  	}  	dst->extra = src->extra; -	/* This element must be provided to convert back to an auth_serversupplied_info */ -	SMB_ASSERT(src->unix_info);  	dst->unix_name = talloc_strdup(dst, src->unix_info->unix_name);  	if (!dst->unix_name) {  		TALLOC_FREE(dst); @@ -1042,7 +1043,6 @@ static struct auth3_session_info *copy_serverinfo_session_info(TALLOC_CTX *mem_c  		return NULL;  	} -	dst->guest = src->guest;  	dst->system = src->system;  	dst->unix_token = talloc(dst, struct security_unix_token); @@ -1100,6 +1100,8 @@ static struct auth3_session_info *copy_serverinfo_session_info(TALLOC_CTX *mem_c  		return NULL;  	} +	dst->unix_info->guest = src->guest; +  	return dst;  } @@ -1113,7 +1115,6 @@ struct auth3_session_info *copy_session_info(TALLOC_CTX *mem_ctx,  		return NULL;  	} -	dst->guest = src->guest;  	dst->system = src->system;  	if (src->unix_token) { @@ -1175,6 +1176,8 @@ struct auth3_session_info *copy_session_info(TALLOC_CTX *mem_ctx,  			TALLOC_FREE(dst);  			return NULL;  		} + +		dst->unix_info->guest = src->unix_info->guest;  	}  	return dst;  | 
