diff options
author | Simo Sorce <idra@samba.org> | 2005-03-24 08:36:00 +0000 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2005-03-24 08:36:00 +0000 |
commit | ebfeeb536e3ab628adf56c56ef36e100820a2181 (patch) | |
tree | 760962c3ac35f2850c9d188a66ec890e8e401ed0 /source/rpc_server/srv_srvsvc_nt.c | |
parent | 9795457fb6379f0eb55fa0a17b08a9e1d277ed35 (diff) | |
download | samba-ebfeeb536e3ab628adf56c56ef36e100820a2181.tar.gz samba-ebfeeb536e3ab628adf56c56ef36e100820a2181.tar.xz samba-ebfeeb536e3ab628adf56c56ef36e100820a2181.zip |
r6034: Check only once
Diffstat (limited to 'source/rpc_server/srv_srvsvc_nt.c')
-rw-r--r-- | source/rpc_server/srv_srvsvc_nt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c index 5dd2e6e47f3..ed08f185f70 100644 --- a/source/rpc_server/srv_srvsvc_nt.c +++ b/source/rpc_server/srv_srvsvc_nt.c @@ -1359,6 +1359,7 @@ WERROR _srv_net_sess_del(pipes_struct *p, SRV_Q_NET_SESS_DEL *q_u, SRV_R_NET_SES int num_sessions, snum, ret; fstring username; fstring machine; + BOOL not_root = False; /* SE_PRIV se_diskop = SE_DISK_OPERATOR; / * Is disk op appropriate here ? JRA. * / BOOL is_disk_op = False; / * No. SSS. :) */ @@ -1393,6 +1394,7 @@ WERROR _srv_net_sess_del(pipes_struct *p, SRV_Q_NET_SESS_DEL *q_u, SRV_R_NET_SES strequal(session_list[snum].remote_machine, machine)) { if (user.uid != sec_initial_uid()) { + not_root = True; become_root(); } if ((ret = message_send_pid(session_list[snum].pid, MSG_SHUTDOWN, NULL, 0, False))) { @@ -1400,7 +1402,7 @@ WERROR _srv_net_sess_del(pipes_struct *p, SRV_Q_NET_SESS_DEL *q_u, SRV_R_NET_SES } else { r_u->status = WERR_ACCESS_DENIED; } - if (user.uid != sec_initial_uid()) { + if (not_root) { unbecome_root(); } } |