From df78b1665836e87d4f128c2e46c898d1cb89dc2a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 6 May 2015 10:52:57 +0200 Subject: [PATCH] s3:smb2_read: pass in_flags to smbd_smb2_read_send() For now we still ignore the flags. Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_read.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source3/smbd/smb2_read.c b/source3/smbd/smb2_read.c index 4e974a2eee1..03cd54b1f92 100644 --- a/source3/smbd/smb2_read.c +++ b/source3/smbd/smb2_read.c @@ -32,6 +32,7 @@ static struct tevent_req *smbd_smb2_read_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct smbd_smb2_request *smb2req, struct files_struct *in_fsp, + uint8_t in_flags, uint32_t in_length, uint64_t in_offset, uint32_t in_minimum, @@ -47,6 +48,7 @@ NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req) struct smbXsrv_connection *xconn = req->xconn; NTSTATUS status; const uint8_t *inbody; + uint8_t in_flags; uint32_t in_length; uint64_t in_offset; uint64_t in_file_id_persistent; @@ -62,6 +64,11 @@ NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req) } inbody = SMBD_SMB2_IN_BODY_PTR(req); + if (xconn->protocol >= PROTOCOL_SMB3_02) { + in_flags = CVAL(inbody, 0x03); + } else { + in_flags = 0; + } in_length = IVAL(inbody, 0x04); in_offset = BVAL(inbody, 0x08); in_file_id_persistent = BVAL(inbody, 0x10); @@ -89,6 +96,7 @@ NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req) subreq = smbd_smb2_read_send(req, req->sconn->ev_ctx, req, in_fsp, + in_flags, in_length, in_offset, in_minimum_count, @@ -165,6 +173,7 @@ struct smbd_smb2_read_state { struct smbd_smb2_request *smb2req; struct smb_request *smbreq; files_struct *fsp; + uint8_t in_flags; uint32_t in_length; uint64_t in_offset; uint32_t in_minimum; @@ -422,6 +431,7 @@ static struct tevent_req *smbd_smb2_read_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct smbd_smb2_request *smb2req, struct files_struct *fsp, + uint8_t in_flags, uint32_t in_length, uint64_t in_offset, uint32_t in_minimum, @@ -442,6 +452,7 @@ static struct tevent_req *smbd_smb2_read_send(TALLOC_CTX *mem_ctx, return NULL; } state->smb2req = smb2req; + state->in_flags = in_flags; state->in_length = in_length; state->in_offset = in_offset; state->in_minimum = in_minimum; -- 2.34.1