From c3fb0cd9edd8944d7278cb716b52fbf16939f044 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Fri, 31 May 2002 00:48:40 +0000 Subject: Return access denied for net_share_enum when restrict anonymous > 0 (This used to be commit 5df1aa9f20ae2036848b7e46703bfd3a923d7b4f) --- source3/rpc_server/srv_srvsvc_nt.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'source3/rpc_server') diff --git a/source3/rpc_server/srv_srvsvc_nt.c b/source3/rpc_server/srv_srvsvc_nt.c index 1f3b1945e3..f14928f9f2 100644 --- a/source3/rpc_server/srv_srvsvc_nt.c +++ b/source3/rpc_server/srv_srvsvc_nt.c @@ -564,8 +564,25 @@ static BOOL init_srv_share_info_ctr(pipes_struct *p, SRV_SHARE_INFO_CTR *ctr, static void init_srv_r_net_share_enum(pipes_struct *p, SRV_R_NET_SHARE_ENUM *r_n, uint32 info_level, uint32 resume_hnd, BOOL all) { + user_struct *user; + DEBUG(5,("init_srv_r_net_share_enum: %d\n", __LINE__)); + /* Don't let anonymous users access this RPC */ + + if (!(user = get_valid_user_struct(p->vuid))) { + DEBUG(3, ("invalid vuid %d in init_srv_r_net_share_enum()\n", + p->vuid)); + r_n->status = WERR_ACCESS_DENIED; + return; + } + + if (lp_restrict_anonymous() > 0 && user->guest) { + DEBUG(5, ("access denied to anonymous connection")); + r_n->status = WERR_ACCESS_DENIED; + return; + } + if (init_srv_share_info_ctr(p, &r_n->ctr, info_level, &resume_hnd, &r_n->total_entries, all)) { r_n->status = WERR_OK; -- cgit