diff options
author | Günther Deschner <gd@samba.org> | 2008-04-01 00:02:48 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@bando.sernet.private> | 2008-04-01 09:47:49 +0200 |
commit | 0d218c6fb1713cf7c4d855c74f85dd373f5d9ff9 (patch) | |
tree | 490deee2ec4a7645b85deb4a3f2faa9bdfea8554 | |
parent | 657031c6342a0b53ecd88dd40153525c9069ea88 (diff) | |
download | samba-0d218c6fb1713cf7c4d855c74f85dd373f5d9ff9.tar.gz samba-0d218c6fb1713cf7c4d855c74f85dd373f5d9ff9.tar.xz samba-0d218c6fb1713cf7c4d855c74f85dd373f5d9ff9.zip |
Fix SRVSVC ShareInfo level 502 server side handling.
Guenther
(cherry picked from commit 776facabf6f09f643d6dc526aa83f8db517465f9)
-rw-r--r-- | source/rpc_client/init_srvsvc.c | 6 | ||||
-rw-r--r-- | source/rpc_server/srv_srvsvc_nt.c | 10 |
2 files changed, 8 insertions, 8 deletions
diff --git a/source/rpc_client/init_srvsvc.c b/source/rpc_client/init_srvsvc.c index 4fa260c2c59..24beb1ace23 100644 --- a/source/rpc_client/init_srvsvc.c +++ b/source/rpc_client/init_srvsvc.c @@ -162,8 +162,7 @@ void init_srvsvc_NetShareInfo502(struct srvsvc_NetShareInfo502 *r, uint32_t current_users, const char *path, const char *password, - uint32_t unknown, - struct security_descriptor *sd) + struct sec_desc_buf *sd_buf) { r->name = name; r->type = type; @@ -173,8 +172,7 @@ void init_srvsvc_NetShareInfo502(struct srvsvc_NetShareInfo502 *r, r->current_users = current_users; r->path = path; r->password = password; - r->unknown = unknown; - r->sd = sd; + r->sd_buf = *sd_buf; } /******************************************************************* diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c index 270c3cdb848..f10f3f205dc 100644 --- a/source/rpc_server/srv_srvsvc_nt.c +++ b/source/rpc_server/srv_srvsvc_nt.c @@ -379,6 +379,7 @@ static void init_srv_share_info_502(pipes_struct *p, struct srvsvc_NetShareInfo5 const char *net_name = lp_servicename(snum); char *path = NULL; SEC_DESC *sd = NULL; + struct sec_desc_buf *sd_buf = NULL; size_t sd_size = 0; TALLOC_CTX *ctx = p->mem_ctx; char *remark = talloc_strdup(ctx, lp_comment(snum));; @@ -397,6 +398,8 @@ static void init_srv_share_info_502(pipes_struct *p, struct srvsvc_NetShareInfo5 sd = get_share_security(ctx, lp_servicename(snum), &sd_size); + sd_buf = make_sec_desc_buf(p->mem_ctx, sd_size, sd); + init_srvsvc_NetShareInfo502(r, net_name, get_share_type(snum), remark ? remark : "", @@ -405,8 +408,7 @@ static void init_srv_share_info_502(pipes_struct *p, struct srvsvc_NetShareInfo5 1, path ? path : "", "", - 0, - sd); + sd_buf); } /*************************************************************************** @@ -1537,7 +1539,7 @@ WERROR _srvsvc_NetShareSetInfo(pipes_struct *p, comment = talloc_strdup(ctx, info->info502->comment); pathname = info->info502->path; type = info->info502->type; - psd = info->info502->sd; + psd = info->info502->sd_buf.sd; map_generic_share_sd_bits(psd); break; case 1004: @@ -1730,7 +1732,7 @@ WERROR _srvsvc_NetShareAdd(pipes_struct *p, max_connections = (r->in.info->info502->max_users == (uint32_t)-1) ? 0 : r->in.info->info502->max_users; type = r->in.info->info502->type; - psd = r->in.info->info502->sd; + psd = r->in.info->info502->sd_buf.sd; map_generic_share_sd_bits(psd); break; |