#include "libcli/raw/libcliraw.h"
#include "libcli/raw/raw_proto.h"
#include "librpc/gen_ndr/ndr_security.h"
-#include "param/param.h"
/*
hold the state of a nttrans op while in progress. Needed to allow for async backend
params = trans->in.params.data;
io->ntcreatex.in.flags = IVAL(params, 0);
- io->ntcreatex.in.root_fid = IVAL(params, 4);
+ io->ntcreatex.in.root_fid.ntvfs = smbsrv_pull_fnum(req, params, 4);
io->ntcreatex.in.access_mask = IVAL(params, 8);
io->ntcreatex.in.alloc_size = BVAL(params, 12);
io->ntcreatex.in.file_attr = IVAL(params, 20);
io->ntcreatex.in.sec_desc = NULL;
io->ntcreatex.in.ea_list = NULL;
io->ntcreatex.in.query_maximal_access = false;
+ io->ntcreatex.in.private_flags = 0;
req_pull_string(&req->in.bufinfo, &io->ntcreatex.in.fname,
params + 53,
if (io->ntcreatex.in.sec_desc == NULL) {
return NT_STATUS_NO_MEMORY;
}
- ndr_err = ndr_pull_struct_blob(&blob, io, NULL,
+ ndr_err = ndr_pull_struct_blob(&blob, io,
io->ntcreatex.in.sec_desc,
(ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
NT_STATUS_NOT_OK_RETURN(status);
params = op->trans->out.params.data;
- ndr_err = ndr_push_struct_blob(&op->trans->out.data, op, NULL,
+ ndr_err = ndr_push_struct_blob(&op->trans->out.data, op,
io->query_secdesc.out.sd,
(ndr_push_flags_fn_t)ndr_push_security_descriptor);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
io->set_secdesc.in.sd = talloc(io, struct security_descriptor);
NT_STATUS_HAVE_NO_MEMORY(io->set_secdesc.in.sd);
- ndr_err = ndr_pull_struct_blob(&trans->in.data, req, NULL,
+ ndr_err = ndr_pull_struct_blob(&trans->in.data, req,
io->set_secdesc.in.sd,
(ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
ssize_t len;
SIVAL(p, 4, info->nttrans.out.changes[i].action);
- len = push_string(lp_iconv_convenience(global_loadparm), p + 12, info->nttrans.out.changes[i].name.s,
+ len = push_string(p + 12, info->nttrans.out.changes[i].name.s,
op->trans->out.params.length -
(p+12 - op->trans->out.params.data), STR_UNICODE);
SIVAL(p, 8, len);
the negotiated buffer size */
do {
uint32_t this_data, this_param, max_bytes;
- uint_t align1 = 1, align2 = (params_left ? 2 : 0);
+ unsigned int align1 = 1, align2 = (params_left ? 2 : 0);
struct smbsrv_request *this_req;
max_bytes = req_max_data(req) - (align1 + align2);