diff options
author | Jeremy Allison <jra@samba.org> | 2001-04-11 21:19:25 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-04-11 21:19:25 +0000 |
commit | 20b13bafdff2fd7be9219ed164e7fe91b597298d (patch) | |
tree | 6daca9245ec8acaa761cc720c9ad69775e738cb9 /source/rpc_server | |
parent | 3ac5f6b59ee30d12bfec0cc36cf00b9e9798a453 (diff) | |
download | samba-20b13bafdff2fd7be9219ed164e7fe91b597298d.tar.gz samba-20b13bafdff2fd7be9219ed164e7fe91b597298d.tar.xz samba-20b13bafdff2fd7be9219ed164e7fe91b597298d.zip |
Fix for core dump in security = share code with new share security db.
Jeremy.
Diffstat (limited to 'source/rpc_server')
-rw-r--r-- | source/rpc_server/srv_srvsvc_nt.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c index bce5c332250..0c165bf9fa1 100644 --- a/source/rpc_server/srv_srvsvc_nt.c +++ b/source/rpc_server/srv_srvsvc_nt.c @@ -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: |