mirror of
https://github.com/samba-team/samba.git
synced 2025-12-16 00:23:52 +03:00
Fix for core dump in security = share code with new share security db.
Jeremy.
This commit is contained in:
@@ -293,7 +293,7 @@ void map_generic_share_sd_bits(SEC_DESC *psd)
|
||||
Can this user access with share with the required permissions ?
|
||||
********************************************************************/
|
||||
|
||||
BOOL share_access_check(int snum, uint16 vuid, uint32 desired_access)
|
||||
BOOL share_access_check(connection_struct *conn, int snum, uint16 vuid, uint32 desired_access)
|
||||
{
|
||||
uint32 granted, status;
|
||||
TALLOC_CTX *mem_ctx = NULL;
|
||||
@@ -313,17 +313,25 @@ BOOL share_access_check(int snum, uint16 vuid, uint32 desired_access)
|
||||
if (!psd)
|
||||
goto out;
|
||||
|
||||
ZERO_STRUCT(tmp_user);
|
||||
if (vuser) {
|
||||
ZERO_STRUCT(tmp_user);
|
||||
tmp_user.vuid = vuid;
|
||||
tmp_user.uid = vuser->uid;
|
||||
tmp_user.gid = vuser->gid;
|
||||
tmp_user.ngroups = vuser->n_groups;
|
||||
tmp_user.groups = vuser->groups;
|
||||
tmp_user.nt_user_token = vuser->nt_user_token;
|
||||
puser = &tmp_user;
|
||||
} else {
|
||||
tmp_user.vuid = vuid;
|
||||
tmp_user.uid = conn->uid;
|
||||
tmp_user.gid = conn->gid;
|
||||
tmp_user.ngroups = conn->ngroups;
|
||||
tmp_user.groups = conn->groups;
|
||||
tmp_user.nt_user_token = conn->nt_user_token;
|
||||
}
|
||||
|
||||
puser = &tmp_user;
|
||||
|
||||
ret = se_access_check(psd, puser, desired_access, &granted, &status);
|
||||
|
||||
out:
|
||||
|
||||
Reference in New Issue
Block a user