summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/smb_server/smb/nttrans.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/source4/smb_server/smb/nttrans.c b/source4/smb_server/smb/nttrans.c
index b9da899fa9..d7c600aa52 100644
--- a/source4/smb_server/smb/nttrans.c
+++ b/source4/smb_server/smb/nttrans.c
@@ -68,14 +68,11 @@ static NTSTATUS nttrans_create_send(struct nttrans_op *op)
{
union smb_open *io = talloc_get_type(op->op_info, union smb_open);
uint8_t *params;
+ NTSTATUS status;
- op->trans->out.setup_count = 0;
- op->trans->out.setup = NULL;
- op->trans->out.params = data_blob_talloc(op, NULL, 69);
- op->trans->out.data = data_blob(NULL, 0);
-
+ status = nttrans_setup_reply(op, op->trans, 69, 0, 0);
+ NT_STATUS_NOT_OK_RETURN(status);
params = op->trans->out.params.data;
- NT_STATUS_HAVE_NO_MEMORY(params);
SSVAL(params, 0, io->ntcreatex.out.oplock_level);
SSVAL(params, 2, io->ntcreatex.out.file.fnum);
@@ -197,22 +194,20 @@ static NTSTATUS nttrans_create(struct smbsrv_request *req,
*/
static NTSTATUS nttrans_query_sec_desc_send(struct nttrans_op *op)
{
- struct smb_nttrans *trans = op->trans;
union smb_fileinfo *io = talloc_get_type(op->op_info, union smb_fileinfo);
+ uint8_t *params;
NTSTATUS status;
- trans->out.setup_count = 0;
- trans->out.setup = NULL;
- trans->out.params = data_blob_talloc(op, NULL, 4);
- trans->out.data = data_blob(NULL, 0);
- NT_STATUS_HAVE_NO_MEMORY(trans->out.params.data);
+ status = nttrans_setup_reply(op, op->trans, 4, 0, 0);
+ NT_STATUS_NOT_OK_RETURN(status);
+ params = op->trans->out.params.data;
- status = ndr_push_struct_blob(&trans->out.data, op,
+ status = ndr_push_struct_blob(&op->trans->out.data, op,
io->query_secdesc.out.sd,
(ndr_push_flags_fn_t)ndr_push_security_descriptor);
NT_STATUS_NOT_OK_RETURN(status);
- SIVAL(trans->out.params.data, 0, trans->out.data.length);
+ SIVAL(params, 0, op->trans->out.data.length);
return NT_STATUS_OK;
}