123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- --- a/source3/smbd/lanman.c
- +++ b/source3/smbd/lanman.c
- @@ -2197,6 +2197,10 @@ static bool api_RNetShareAdd(struct smbd
- struct srvsvc_NetShareInfo2 info2;
- struct dcerpc_binding_handle *b;
-
- +#ifndef SRVSVC_SUPPORT
- + return False;
- +#endif
- +
- if (!str1 || !str2 || !p) {
- return False;
- }
- @@ -3589,10 +3593,7 @@ static bool api_RNetServerGetInfo(struct
- NTSTATUS status;
- WERROR werr;
- TALLOC_CTX *mem_ctx = talloc_tos();
- - struct rpc_pipe_client *cli = NULL;
- - union srvsvc_NetSrvInfo info;
- int errcode;
- - struct dcerpc_binding_handle *b;
-
- if (!str1 || !str2 || !p) {
- return False;
- @@ -3655,66 +3656,16 @@ static bool api_RNetServerGetInfo(struct
- p = *rdata;
- p2 = p + struct_len;
-
- - status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc.syntax_id,
- - conn->session_info,
- - &conn->sconn->client_id,
- - conn->sconn->msg_ctx,
- - &cli);
- - if (!NT_STATUS_IS_OK(status)) {
- - DEBUG(0,("api_RNetServerGetInfo: could not connect to srvsvc: %s\n",
- - nt_errstr(status)));
- - errcode = W_ERROR_V(ntstatus_to_werror(status));
- - goto out;
- - }
- -
- - b = cli->binding_handle;
- -
- - status = dcerpc_srvsvc_NetSrvGetInfo(b, mem_ctx,
- - NULL,
- - 101,
- - &info,
- - &werr);
- - if (!NT_STATUS_IS_OK(status)) {
- - errcode = W_ERROR_V(ntstatus_to_werror(status));
- - goto out;
- - }
- - if (!W_ERROR_IS_OK(werr)) {
- - errcode = W_ERROR_V(werr);
- - goto out;
- - }
- -
- - if (info.info101 == NULL) {
- - errcode = W_ERROR_V(WERR_INVALID_PARAM);
- - goto out;
- - }
- -
- if (uLevel != 20) {
- - srvstr_push(NULL, 0, p, info.info101->server_name, 16,
- + srvstr_push(NULL, 0, p, global_myname(), 16,
- STR_ASCII|STR_UPPER|STR_TERMINATE);
- - }
- + }
- p += 16;
- if (uLevel > 0) {
- - SCVAL(p,0,info.info101->version_major);
- - SCVAL(p,1,info.info101->version_minor);
- - SIVAL(p,2,info.info101->server_type);
- -
- - if (mdrcnt == struct_len) {
- - SIVAL(p,6,0);
- - } else {
- - SIVAL(p,6,PTR_DIFF(p2,*rdata));
- - if (mdrcnt - struct_len <= 0) {
- - return false;
- - }
- - push_ascii(p2,
- - info.info101->comment,
- - MIN(mdrcnt - struct_len,
- - MAX_SERVER_STRING_LENGTH),
- - STR_TERMINATE);
- - p2 = skip_string(*rdata,*rdata_len,p2);
- - if (!p2) {
- - return False;
- - }
- - }
- + SCVAL(p,0,lp_major_announce_version());
- + SCVAL(p,1,lp_minor_announce_version());
- + SIVAL(p,2,lp_default_server_announce());
- + SIVAL(p,6,0);
- }
-
- if (uLevel > 1) {
- @@ -5405,6 +5356,10 @@ static bool api_RNetSessionEnum(struct s
- uint32_t totalentries, resume_handle = 0;
- uint32_t count = 0;
-
- +#ifndef SRVSVC_SUPPORT
- + return False;
- +#endif
- +
- if (!str1 || !str2 || !p) {
- return False;
- }
- --- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
- +++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
- @@ -1533,6 +1533,10 @@ WERROR _srvsvc_NetShareSetInfo(struct pi
- TALLOC_CTX *ctx = p->mem_ctx;
- union srvsvc_NetShareInfo *info = r->in.info;
-
- +#ifndef FULL_SRVSVC
- + return WERR_ACCESS_DENIED;
- +#endif
- +
- DEBUG(5,("_srvsvc_NetShareSetInfo: %d\n", __LINE__));
-
- if (!r->in.share_name) {
- @@ -1763,6 +1767,10 @@ WERROR _srvsvc_NetShareAdd(struct pipes_
- int max_connections = 0;
- TALLOC_CTX *ctx = p->mem_ctx;
-
- +#ifndef FULL_SRVSVC
- + return WERR_ACCESS_DENIED;
- +#endif
- +
- DEBUG(5,("_srvsvc_NetShareAdd: %d\n", __LINE__));
-
- if (r->out.parm_error) {
- @@ -1945,6 +1953,10 @@ WERROR _srvsvc_NetShareDel(struct pipes_
- struct share_params *params;
- TALLOC_CTX *ctx = p->mem_ctx;
-
- +#ifndef FULL_SRVSVC
- + return WERR_ACCESS_DENIED;
- +#endif
- +
- DEBUG(5,("_srvsvc_NetShareDel: %d\n", __LINE__));
-
- if (!r->in.share_name) {
|