diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-10-10 07:55:46 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:15:22 -0500 |
commit | 6b0b563fa43ad4c7de3573dc7962a2698e140f72 (patch) | |
tree | b0bacef7886a01bcc716c29e3f359d866468d14c /source3/librpc/gen_ndr/srv_srvsvc.c | |
parent | b71a0be998c0171a01c632f3e14e9764c2dda6c2 (diff) | |
download | samba-6b0b563fa43ad4c7de3573dc7962a2698e140f72.tar.gz samba-6b0b563fa43ad4c7de3573dc7962a2698e140f72.tar.bz2 samba-6b0b563fa43ad4c7de3573dc7962a2698e140f72.zip |
r19221: Monster-Checkin after "make idl"
(This used to be commit 416466a16f58ac644baacaa2522c4e98176d0e70)
Diffstat (limited to 'source3/librpc/gen_ndr/srv_srvsvc.c')
-rw-r--r-- | source3/librpc/gen_ndr/srv_srvsvc.c | 648 |
1 files changed, 540 insertions, 108 deletions
diff --git a/source3/librpc/gen_ndr/srv_srvsvc.c b/source3/librpc/gen_ndr/srv_srvsvc.c index 7e987316d4..351b3f4032 100644 --- a/source3/librpc/gen_ndr/srv_srvsvc.c +++ b/source3/librpc/gen_ndr/srv_srvsvc.c @@ -21,8 +21,10 @@ static BOOL api_srvsvc_NetCharDevEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevEnum(pull, NDR_IN, &r); @@ -46,6 +48,12 @@ static BOOL api_srvsvc_NetCharDevEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetCharDevEnum(p, r.in.server_unc, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevEnum, &r); @@ -62,7 +70,7 @@ static BOOL api_srvsvc_NetCharDevEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -87,8 +95,10 @@ static BOOL api_srvsvc_NetCharDevGetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevGetInfo(pull, NDR_IN, &r); @@ -109,6 +119,12 @@ static BOOL api_srvsvc_NetCharDevGetInfo(pipes_struct *p) r.out.result = _srvsvc_NetCharDevGetInfo(p, r.in.server_unc, r.in.device_name, r.in.level, r.out.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevGetInfo, &r); @@ -125,7 +141,7 @@ static BOOL api_srvsvc_NetCharDevGetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -150,8 +166,10 @@ static BOOL api_srvsvc_NetCharDevControl(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevControl(pull, NDR_IN, &r); @@ -165,6 +183,12 @@ static BOOL api_srvsvc_NetCharDevControl(pipes_struct *p) r.out.result = _srvsvc_NetCharDevControl(p, r.in.server_unc, r.in.device_name, r.in.opcode); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevControl, &r); @@ -181,7 +205,7 @@ static BOOL api_srvsvc_NetCharDevControl(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -206,8 +230,10 @@ static BOOL api_srvsvc_NetCharDevQEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevQEnum(pull, NDR_IN, &r); @@ -231,6 +257,12 @@ static BOOL api_srvsvc_NetCharDevQEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetCharDevQEnum(p, r.in.server_unc, r.in.user, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevQEnum, &r); @@ -247,7 +279,7 @@ static BOOL api_srvsvc_NetCharDevQEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -272,8 +304,10 @@ static BOOL api_srvsvc_NetCharDevQGetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevQGetInfo(pull, NDR_IN, &r); @@ -294,6 +328,12 @@ static BOOL api_srvsvc_NetCharDevQGetInfo(pipes_struct *p) r.out.result = _srvsvc_NetCharDevQGetInfo(p, r.in.server_unc, r.in.queue_name, r.in.user, r.in.level, r.out.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevQGetInfo, &r); @@ -310,7 +350,7 @@ static BOOL api_srvsvc_NetCharDevQGetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -335,8 +375,10 @@ static BOOL api_srvsvc_NetCharDevQSetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevQSetInfo(pull, NDR_IN, &r); @@ -352,6 +394,12 @@ static BOOL api_srvsvc_NetCharDevQSetInfo(pipes_struct *p) r.out.parm_error = r.in.parm_error; r.out.result = _srvsvc_NetCharDevQSetInfo(p, r.in.server_unc, r.in.queue_name, r.in.level, r.in.info, r.in.parm_error); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevQSetInfo, &r); @@ -368,7 +416,7 @@ static BOOL api_srvsvc_NetCharDevQSetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -393,8 +441,10 @@ static BOOL api_srvsvc_NetCharDevQPurge(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevQPurge(pull, NDR_IN, &r); @@ -408,6 +458,12 @@ static BOOL api_srvsvc_NetCharDevQPurge(pipes_struct *p) r.out.result = _srvsvc_NetCharDevQPurge(p, r.in.server_unc, r.in.queue_name); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevQPurge, &r); @@ -424,7 +480,7 @@ static BOOL api_srvsvc_NetCharDevQPurge(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -449,8 +505,10 @@ static BOOL api_srvsvc_NetCharDevQPurgeSelf(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetCharDevQPurgeSelf(pull, NDR_IN, &r); @@ -464,6 +522,12 @@ static BOOL api_srvsvc_NetCharDevQPurgeSelf(pipes_struct *p) r.out.result = _srvsvc_NetCharDevQPurgeSelf(p, r.in.server_unc, r.in.queue_name, r.in.computer_name); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetCharDevQPurgeSelf, &r); @@ -480,7 +544,7 @@ static BOOL api_srvsvc_NetCharDevQPurgeSelf(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -505,8 +569,10 @@ static BOOL api_srvsvc_NetConnEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetConnEnum(pull, NDR_IN, &r); @@ -530,6 +596,12 @@ static BOOL api_srvsvc_NetConnEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetConnEnum(p, r.in.server_unc, r.in.path, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetConnEnum, &r); @@ -546,7 +618,7 @@ static BOOL api_srvsvc_NetConnEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -571,8 +643,10 @@ static BOOL api_srvsvc_NetFileEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetFileEnum(pull, NDR_IN, &r); @@ -596,6 +670,12 @@ static BOOL api_srvsvc_NetFileEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetFileEnum(p, r.in.server_unc, r.in.path, r.in.user, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetFileEnum, &r); @@ -612,7 +692,7 @@ static BOOL api_srvsvc_NetFileEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -637,8 +717,10 @@ static BOOL api_srvsvc_NetFileGetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetFileGetInfo(pull, NDR_IN, &r); @@ -659,6 +741,12 @@ static BOOL api_srvsvc_NetFileGetInfo(pipes_struct *p) r.out.result = _srvsvc_NetFileGetInfo(p, r.in.server_unc, r.in.fid, r.in.level, r.out.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetFileGetInfo, &r); @@ -675,7 +763,7 @@ static BOOL api_srvsvc_NetFileGetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -700,8 +788,10 @@ static BOOL api_srvsvc_NetFileClose(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetFileClose(pull, NDR_IN, &r); @@ -715,6 +805,12 @@ static BOOL api_srvsvc_NetFileClose(pipes_struct *p) r.out.result = _srvsvc_NetFileClose(p, r.in.server_unc, r.in.fid); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetFileClose, &r); @@ -731,7 +827,7 @@ static BOOL api_srvsvc_NetFileClose(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -756,8 +852,10 @@ static BOOL api_srvsvc_NetSessEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetSessEnum(pull, NDR_IN, &r); @@ -781,6 +879,12 @@ static BOOL api_srvsvc_NetSessEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetSessEnum(p, r.in.server_unc, r.in.client, r.in.user, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetSessEnum, &r); @@ -797,7 +901,7 @@ static BOOL api_srvsvc_NetSessEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -822,8 +926,10 @@ static BOOL api_srvsvc_NetSessDel(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetSessDel(pull, NDR_IN, &r); @@ -837,6 +943,12 @@ static BOOL api_srvsvc_NetSessDel(pipes_struct *p) r.out.result = _srvsvc_NetSessDel(p, r.in.server_unc, r.in.client, r.in.user); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetSessDel, &r); @@ -853,7 +965,7 @@ static BOOL api_srvsvc_NetSessDel(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -878,8 +990,10 @@ static BOOL api_srvsvc_NetShareAdd(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareAdd(pull, NDR_IN, &r); @@ -895,6 +1009,12 @@ static BOOL api_srvsvc_NetShareAdd(pipes_struct *p) r.out.parm_error = r.in.parm_error; r.out.result = _srvsvc_NetShareAdd(p, r.in.server_unc, r.in.level, r.in.info, r.in.parm_error); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareAdd, &r); @@ -911,7 +1031,7 @@ static BOOL api_srvsvc_NetShareAdd(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -936,8 +1056,10 @@ static BOOL api_srvsvc_NetShareEnumAll(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareEnumAll(pull, NDR_IN, &r); @@ -961,6 +1083,12 @@ static BOOL api_srvsvc_NetShareEnumAll(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetShareEnumAll(p, r.in.server_unc, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareEnumAll, &r); @@ -977,7 +1105,7 @@ static BOOL api_srvsvc_NetShareEnumAll(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1002,8 +1130,10 @@ static BOOL api_srvsvc_NetShareGetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareGetInfo(pull, NDR_IN, &r); @@ -1024,6 +1154,12 @@ static BOOL api_srvsvc_NetShareGetInfo(pipes_struct *p) r.out.result = _srvsvc_NetShareGetInfo(p, r.in.server_unc, r.in.share_name, r.in.level, r.out.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareGetInfo, &r); @@ -1040,7 +1176,7 @@ static BOOL api_srvsvc_NetShareGetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1065,8 +1201,10 @@ static BOOL api_srvsvc_NetShareSetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareSetInfo(pull, NDR_IN, &r); @@ -1082,6 +1220,12 @@ static BOOL api_srvsvc_NetShareSetInfo(pipes_struct *p) r.out.parm_error = r.in.parm_error; r.out.result = _srvsvc_NetShareSetInfo(p, r.in.server_unc, r.in.share_name, r.in.level, r.in.info, r.in.parm_error); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareSetInfo, &r); @@ -1098,7 +1242,7 @@ static BOOL api_srvsvc_NetShareSetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1123,8 +1267,10 @@ static BOOL api_srvsvc_NetShareDel(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareDel(pull, NDR_IN, &r); @@ -1138,6 +1284,12 @@ static BOOL api_srvsvc_NetShareDel(pipes_struct *p) r.out.result = _srvsvc_NetShareDel(p, r.in.server_unc, r.in.share_name, r.in.reserved); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareDel, &r); @@ -1154,7 +1306,7 @@ static BOOL api_srvsvc_NetShareDel(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1179,8 +1331,10 @@ static BOOL api_srvsvc_NetShareDelSticky(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareDelSticky(pull, NDR_IN, &r); @@ -1194,6 +1348,12 @@ static BOOL api_srvsvc_NetShareDelSticky(pipes_struct *p) r.out.result = _srvsvc_NetShareDelSticky(p, r.in.server_unc, r.in.share_name, r.in.reserved); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareDelSticky, &r); @@ -1210,7 +1370,7 @@ static BOOL api_srvsvc_NetShareDelSticky(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1235,8 +1395,10 @@ static BOOL api_srvsvc_NetShareCheck(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareCheck(pull, NDR_IN, &r); @@ -1257,6 +1419,12 @@ static BOOL api_srvsvc_NetShareCheck(pipes_struct *p) r.out.result = _srvsvc_NetShareCheck(p, r.in.server_unc, r.in.device_name, r.out.type); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareCheck, &r); @@ -1273,7 +1441,7 @@ static BOOL api_srvsvc_NetShareCheck(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1298,8 +1466,10 @@ static BOOL api_srvsvc_NetSrvGetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetSrvGetInfo(pull, NDR_IN, &r); @@ -1320,6 +1490,12 @@ static BOOL api_srvsvc_NetSrvGetInfo(pipes_struct *p) r.out.result = _srvsvc_NetSrvGetInfo(p, r.in.server_unc, r.in.level, r.out.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetSrvGetInfo, &r); @@ -1336,7 +1512,7 @@ static BOOL api_srvsvc_NetSrvGetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1361,8 +1537,10 @@ static BOOL api_srvsvc_NetSrvSetInfo(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetSrvSetInfo(pull, NDR_IN, &r); @@ -1378,6 +1556,12 @@ static BOOL api_srvsvc_NetSrvSetInfo(pipes_struct *p) r.out.parm_error = r.in.parm_error; r.out.result = _srvsvc_NetSrvSetInfo(p, r.in.server_unc, r.in.level, r.in.info, r.in.parm_error); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetSrvSetInfo, &r); @@ -1394,7 +1578,7 @@ static BOOL api_srvsvc_NetSrvSetInfo(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1419,8 +1603,10 @@ static BOOL api_srvsvc_NetDiskEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetDiskEnum(pull, NDR_IN, &r); @@ -1443,6 +1629,12 @@ static BOOL api_srvsvc_NetDiskEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetDiskEnum(p, r.in.server_unc, r.in.level, r.in.info, r.in.maxlen, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetDiskEnum, &r); @@ -1459,7 +1651,7 @@ static BOOL api_srvsvc_NetDiskEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1484,8 +1676,10 @@ static BOOL api_srvsvc_NetServerStatisticsGet(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetServerStatisticsGet(pull, NDR_IN, &r); @@ -1506,6 +1700,12 @@ static BOOL api_srvsvc_NetServerStatisticsGet(pipes_struct *p) r.out.result = _srvsvc_NetServerStatisticsGet(p, r.in.server_unc, r.in.service, r.in.level, r.in.options, r.out.stats); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetServerStatisticsGet, &r); @@ -1522,7 +1722,7 @@ static BOOL api_srvsvc_NetServerStatisticsGet(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1547,8 +1747,10 @@ static BOOL api_srvsvc_NetTransportAdd(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetTransportAdd(pull, NDR_IN, &r); @@ -1562,6 +1764,12 @@ static BOOL api_srvsvc_NetTransportAdd(pipes_struct *p) r.out.result = _srvsvc_NetTransportAdd(p, r.in.server_unc, r.in.level, r.in.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetTransportAdd, &r); @@ -1578,7 +1786,7 @@ static BOOL api_srvsvc_NetTransportAdd(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1603,8 +1811,10 @@ static BOOL api_srvsvc_NetTransportEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetTransportEnum(pull, NDR_IN, &r); @@ -1628,6 +1838,12 @@ static BOOL api_srvsvc_NetTransportEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetTransportEnum(p, r.in.server_unc, r.in.level, r.in.transports, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetTransportEnum, &r); @@ -1644,7 +1860,7 @@ static BOOL api_srvsvc_NetTransportEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1669,8 +1885,10 @@ static BOOL api_srvsvc_NetTransportDel(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetTransportDel(pull, NDR_IN, &r); @@ -1684,6 +1902,12 @@ static BOOL api_srvsvc_NetTransportDel(pipes_struct *p) r.out.result = _srvsvc_NetTransportDel(p, r.in.server_unc, r.in.unknown, r.in.transport); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetTransportDel, &r); @@ -1700,7 +1924,7 @@ static BOOL api_srvsvc_NetTransportDel(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1725,8 +1949,10 @@ static BOOL api_srvsvc_NetRemoteTOD(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetRemoteTOD(pull, NDR_IN, &r); @@ -1747,6 +1973,12 @@ static BOOL api_srvsvc_NetRemoteTOD(pipes_struct *p) r.out.result = _srvsvc_NetRemoteTOD(p, r.in.server_unc, r.out.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetRemoteTOD, &r); @@ -1763,7 +1995,7 @@ static BOOL api_srvsvc_NetRemoteTOD(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1788,8 +2020,10 @@ static BOOL api_srvsvc_NetSetServiceBits(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetSetServiceBits(pull, NDR_IN, &r); @@ -1803,6 +2037,12 @@ static BOOL api_srvsvc_NetSetServiceBits(pipes_struct *p) r.out.result = _srvsvc_NetSetServiceBits(p, r.in.server_unc, r.in.transport, r.in.servicebits, r.in.updateimmediately); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetSetServiceBits, &r); @@ -1819,7 +2059,7 @@ static BOOL api_srvsvc_NetSetServiceBits(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1844,8 +2084,10 @@ static BOOL api_srvsvc_NetPathType(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetPathType(pull, NDR_IN, &r); @@ -1866,6 +2108,12 @@ static BOOL api_srvsvc_NetPathType(pipes_struct *p) r.out.result = _srvsvc_NetPathType(p, r.in.server_unc, r.in.path, r.in.pathflags, r.out.pathtype); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetPathType, &r); @@ -1882,7 +2130,7 @@ static BOOL api_srvsvc_NetPathType(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1907,8 +2155,10 @@ static BOOL api_srvsvc_NetPathCanonicalize(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetPathCanonicalize(pull, NDR_IN, &r); @@ -1930,6 +2180,12 @@ static BOOL api_srvsvc_NetPathCanonicalize(pipes_struct *p) r.out.pathtype = r.in.pathtype; r.out.result = _srvsvc_NetPathCanonicalize(p, r.in.server_unc, r.in.path, r.out.can_path, r.in.maxbuf, r.in.prefix, r.in.pathtype, r.in.pathflags); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetPathCanonicalize, &r); @@ -1946,7 +2202,7 @@ static BOOL api_srvsvc_NetPathCanonicalize(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -1971,8 +2227,10 @@ static BOOL api_srvsvc_NetPathCompare(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetPathCompare(pull, NDR_IN, &r); @@ -1986,6 +2244,12 @@ static BOOL api_srvsvc_NetPathCompare(pipes_struct *p) r.out.result = _srvsvc_NetPathCompare(p, r.in.server_unc, r.in.path1, r.in.path2, r.in.pathtype, r.in.pathflags); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetPathCompare, &r); @@ -2002,7 +2266,7 @@ static BOOL api_srvsvc_NetPathCompare(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2027,8 +2291,10 @@ static BOOL api_srvsvc_NetNameValidate(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetNameValidate(pull, NDR_IN, &r); @@ -2042,6 +2308,12 @@ static BOOL api_srvsvc_NetNameValidate(pipes_struct *p) r.out.result = _srvsvc_NetNameValidate(p, r.in.server_unc, r.in.name, r.in.name_type, r.in.flags); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetNameValidate, &r); @@ -2058,7 +2330,7 @@ static BOOL api_srvsvc_NetNameValidate(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2083,8 +2355,10 @@ static BOOL api_srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRPRNAMECANONICALIZE(pull, NDR_IN, &r); @@ -2098,6 +2372,12 @@ static BOOL api_srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p) r.out.result = _srvsvc_NETRPRNAMECANONICALIZE(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRPRNAMECANONICALIZE, &r); @@ -2114,7 +2394,7 @@ static BOOL api_srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2139,8 +2419,10 @@ static BOOL api_srvsvc_NetPRNameCompare(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetPRNameCompare(pull, NDR_IN, &r); @@ -2154,6 +2436,12 @@ static BOOL api_srvsvc_NetPRNameCompare(pipes_struct *p) r.out.result = _srvsvc_NetPRNameCompare(p, r.in.server_unc, r.in.name1, r.in.name2, r.in.name_type, r.in.flags); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetPRNameCompare, &r); @@ -2170,7 +2458,7 @@ static BOOL api_srvsvc_NetPRNameCompare(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2195,8 +2483,10 @@ static BOOL api_srvsvc_NetShareEnum(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareEnum(pull, NDR_IN, &r); @@ -2220,6 +2510,12 @@ static BOOL api_srvsvc_NetShareEnum(pipes_struct *p) r.out.resume_handle = r.in.resume_handle; r.out.result = _srvsvc_NetShareEnum(p, r.in.server_unc, r.in.level, r.in.ctr, r.in.max_buffer, r.out.totalentries, r.in.resume_handle); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareEnum, &r); @@ -2236,7 +2532,7 @@ static BOOL api_srvsvc_NetShareEnum(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2261,8 +2557,10 @@ static BOOL api_srvsvc_NetShareDelStart(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareDelStart(pull, NDR_IN, &r); @@ -2283,6 +2581,12 @@ static BOOL api_srvsvc_NetShareDelStart(pipes_struct *p) r.out.result = _srvsvc_NetShareDelStart(p, r.in.server_unc, r.in.share, r.in.reserved, r.out.hnd); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareDelStart, &r); @@ -2299,7 +2603,7 @@ static BOOL api_srvsvc_NetShareDelStart(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2324,8 +2628,10 @@ static BOOL api_srvsvc_NetShareDelCommit(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetShareDelCommit(pull, NDR_IN, &r); @@ -2341,6 +2647,12 @@ static BOOL api_srvsvc_NetShareDelCommit(pipes_struct *p) r.out.hnd = r.in.hnd; r.out.result = _srvsvc_NetShareDelCommit(p, r.in.hnd); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetShareDelCommit, &r); @@ -2357,7 +2669,7 @@ static BOOL api_srvsvc_NetShareDelCommit(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2382,8 +2694,10 @@ static BOOL api_srvsvc_NetGetFileSecurity(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetGetFileSecurity(pull, NDR_IN, &r); @@ -2404,6 +2718,12 @@ static BOOL api_srvsvc_NetGetFileSecurity(pipes_struct *p) r.out.result = _srvsvc_NetGetFileSecurity(p, r.in.server_unc, r.in.share, r.in.file, r.in.securityinformation, r.out.sd_buf); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetGetFileSecurity, &r); @@ -2420,7 +2740,7 @@ static BOOL api_srvsvc_NetGetFileSecurity(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2445,8 +2765,10 @@ static BOOL api_srvsvc_NetSetFileSecurity(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetSetFileSecurity(pull, NDR_IN, &r); @@ -2460,6 +2782,12 @@ static BOOL api_srvsvc_NetSetFileSecurity(pipes_struct *p) r.out.result = _srvsvc_NetSetFileSecurity(p, r.in.server_unc, r.in.share, r.in.file, r.in.securityinformation, r.in.sd_buf); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetSetFileSecurity, &r); @@ -2476,7 +2804,7 @@ static BOOL api_srvsvc_NetSetFileSecurity(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2501,8 +2829,10 @@ static BOOL api_srvsvc_NetServerTransportAddEx(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetServerTransportAddEx(pull, NDR_IN, &r); @@ -2516,6 +2846,12 @@ static BOOL api_srvsvc_NetServerTransportAddEx(pipes_struct *p) r.out.result = _srvsvc_NetServerTransportAddEx(p, r.in.server_unc, r.in.level, r.in.info); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetServerTransportAddEx, &r); @@ -2532,7 +2868,7 @@ static BOOL api_srvsvc_NetServerTransportAddEx(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2557,8 +2893,10 @@ static BOOL api_srvsvc_NetServerSetServiceBitsEx(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NetServerSetServiceBitsEx(pull, NDR_IN, &r); @@ -2572,6 +2910,12 @@ static BOOL api_srvsvc_NetServerSetServiceBitsEx(pipes_struct *p) r.out.result = _srvsvc_NetServerSetServiceBitsEx(p, r.in.server_unc, r.in.emulated_server_unc, r.in.transport, r.in.servicebitsofinterest, r.in.servicebits, r.in.updateimmediately); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NetServerSetServiceBitsEx, &r); @@ -2588,7 +2932,7 @@ static BOOL api_srvsvc_NetServerSetServiceBitsEx(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2613,8 +2957,10 @@ static BOOL api_srvsvc_NETRDFSGETVERSION(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSGETVERSION(pull, NDR_IN, &r); @@ -2628,6 +2974,12 @@ static BOOL api_srvsvc_NETRDFSGETVERSION(pipes_struct *p) r.out.result = _srvsvc_NETRDFSGETVERSION(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSGETVERSION, &r); @@ -2644,7 +2996,7 @@ static BOOL api_srvsvc_NETRDFSGETVERSION(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2669,8 +3021,10 @@ static BOOL api_srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSCREATELOCALPARTITION(pull, NDR_IN, &r); @@ -2684,6 +3038,12 @@ static BOOL api_srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p) r.out.result = _srvsvc_NETRDFSCREATELOCALPARTITION(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSCREATELOCALPARTITION, &r); @@ -2700,7 +3060,7 @@ static BOOL api_srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2725,8 +3085,10 @@ static BOOL api_srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSDELETELOCALPARTITION(pull, NDR_IN, &r); @@ -2740,6 +3102,12 @@ static BOOL api_srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p) r.out.result = _srvsvc_NETRDFSDELETELOCALPARTITION(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSDELETELOCALPARTITION, &r); @@ -2756,7 +3124,7 @@ static BOOL api_srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2781,8 +3149,10 @@ static BOOL api_srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSSETLOCALVOLUMESTATE(pull, NDR_IN, &r); @@ -2796,6 +3166,12 @@ static BOOL api_srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p) r.out.result = _srvsvc_NETRDFSSETLOCALVOLUMESTATE(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSSETLOCALVOLUMESTATE, &r); @@ -2812,7 +3188,7 @@ static BOOL api_srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2837,8 +3213,10 @@ static BOOL api_srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSSETSERVERINFO(pull, NDR_IN, &r); @@ -2852,6 +3230,12 @@ static BOOL api_srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p) r.out.result = _srvsvc_NETRDFSSETSERVERINFO(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSSETSERVERINFO, &r); @@ -2868,7 +3252,7 @@ static BOOL api_srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2893,8 +3277,10 @@ static BOOL api_srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSCREATEEXITPOINT(pull, NDR_IN, &r); @@ -2908,6 +3294,12 @@ static BOOL api_srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p) r.out.result = _srvsvc_NETRDFSCREATEEXITPOINT(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSCREATEEXITPOINT, &r); @@ -2924,7 +3316,7 @@ static BOOL api_srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -2949,8 +3341,10 @@ static BOOL api_srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSDELETEEXITPOINT(pull, NDR_IN, &r); @@ -2964,6 +3358,12 @@ static BOOL api_srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p) r.out.result = _srvsvc_NETRDFSDELETEEXITPOINT(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSDELETEEXITPOINT, &r); @@ -2980,7 +3380,7 @@ static BOOL api_srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -3005,8 +3405,10 @@ static BOOL api_srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSMODIFYPREFIX(pull, NDR_IN, &r); @@ -3020,6 +3422,12 @@ static BOOL api_srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p) r.out.result = _srvsvc_NETRDFSMODIFYPREFIX(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSMODIFYPREFIX, &r); @@ -3036,7 +3444,7 @@ static BOOL api_srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -3061,8 +3469,10 @@ static BOOL api_srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSFIXLOCALVOLUME(pull, NDR_IN, &r); @@ -3076,6 +3486,12 @@ static BOOL api_srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p) r.out.result = _srvsvc_NETRDFSFIXLOCALVOLUME(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSFIXLOCALVOLUME, &r); @@ -3092,7 +3508,7 @@ static BOOL api_srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -3117,8 +3533,10 @@ static BOOL api_srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRDFSMANAGERREPORTSITEINFO(pull, NDR_IN, &r); @@ -3132,6 +3550,12 @@ static BOOL api_srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p) r.out.result = _srvsvc_NETRDFSMANAGERREPORTSITEINFO(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRDFSMANAGERREPORTSITEINFO, &r); @@ -3148,7 +3572,7 @@ static BOOL api_srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } @@ -3173,8 +3597,10 @@ static BOOL api_srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p) } pull = ndr_pull_init_blob(&blob, mem_ctx); - if (pull == NULL) + if (pull == NULL) { + talloc_free(mem_ctx); return False; + } pull->flags |= LIBNDR_FLAG_REF_ALLOC; status = ndr_pull_srvsvc_NETRSERVERTRANSPORTDELEX(pull, NDR_IN, &r); @@ -3188,6 +3614,12 @@ static BOOL api_srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p) r.out.result = _srvsvc_NETRSERVERTRANSPORTDELEX(p); + if (p->rng_fault_state) { + talloc_free(mem_ctx); + /* Return True here, srv_pipe_hnd.c will take care */ + return True; + } + if (DEBUGLEVEL >= 10) NDR_PRINT_OUT_DEBUG(srvsvc_NETRSERVERTRANSPORTDELEX, &r); @@ -3204,7 +3636,7 @@ static BOOL api_srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p) } blob = ndr_push_blob(push); - if (!prs_init_data_blob(&p->out_data.rdata, &blob, p->mem_ctx)) { + if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) { talloc_free(mem_ctx); return False; } |