[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Sun Aug 5 15:10:02 MDT 2012
The branch, master has been updated
via 1c7bd2b s3:smbd: remove unused variable in sesssetup.c
via 4384b1e s3:smb2_server: make use of SMBD_SMB2_* macros
via 47c67f2 s3:smb2_ioctl: make use of SMBD_SMB2_* macros
via e281b9f s3:smb2_lock: make use of SMBD_SMB2_* macros
via e67d07f s3:smb2_setinfo: make use of SMBD_SMB2_* macros
via 9c58a0a s3:smb2_getinfo: make use of SMBD_SMB2_* macros
via e9a21e5 s3:smb2_negprot: make use of SMBD_SMB2_* macros
via f28b2ac s3:smb2_write: make use of SMBD_SMB2_* macros
via f08e478 s3:smb2_tcon: make use of SMBD_SMB2_* macros
via 6e9a65d s3:smb2_create: make use of SMBD_SMB2_* macros
via 926379a s3:smb2_find: make use of SMBD_SMB2_* macros
via 559742f s3:smb2_sesssetup: make use of SMBD_SMB2_* macros
via 048c8d3 s3:smb2_glue: make use of SMBD_SMB2_IN_HDR_PTR()
via 8cf817d s3:smb2_read: make use of SMBD_SMB2_IN_BODY_PTR()
via 121dbd6 s3:smb2_notify: make use of SMBD_SMB2_IN_*_PTR()
via 88a3402 s3:smb2_flush: make use of SMBD_SMB2_IN_BODY_PTR()
via 52805c4 s3:smb2_close: make use of SMBD_SMB2_IN_BODY_PTR()
via 21742c3 s3:smb2_break: make use of SMBD_SMB2_IN_BODY_PTR()
via 7ee54cd s3:smbd: add helper macros to access smb2req->{in,out}.vector[]
from 7327310 s3:smb2_server: use 'i' instead of '1' as vector index in smbd_smb2_request_pending_timer()
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 1c7bd2b71c3cd54f3f72c34b9bbad1db2ef40722
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 20:34:17 2012 +0200
s3:smbd: remove unused variable in sesssetup.c
metze
Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(master): Sun Aug 5 23:09:06 CEST 2012 on sn-devel-104
commit 4384b1e73b216c014afe043c46522673d82330c8
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_server: make use of SMBD_SMB2_* macros
metze
commit 47c67f2eac4eed26a8664627be7ebe29cf1420c1
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_ioctl: make use of SMBD_SMB2_* macros
metze
commit e281b9f798ffc36a94bfed6f5856661144b0ca3f
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_lock: make use of SMBD_SMB2_* macros
metze
commit e67d07f639c55a91724685fdc09942413c022868
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_setinfo: make use of SMBD_SMB2_* macros
metze
commit 9c58a0a8709d91fd4f132be4660a662a7512ba3b
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_getinfo: make use of SMBD_SMB2_* macros
metze
commit e9a21e5c8b24c9fc01940a1b0d29803b9edf7470
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_negprot: make use of SMBD_SMB2_* macros
metze
commit f28b2ac65a58a99e694206522a853cfdc32a5e85
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_write: make use of SMBD_SMB2_* macros
metze
commit f08e478d2fa9379d439dd10221607c33c083febf
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_tcon: make use of SMBD_SMB2_* macros
metze
commit 6e9a65ded3d0a67345d52c49108c3b7d21cf3a87
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_create: make use of SMBD_SMB2_* macros
metze
commit 926379ae79a11bca78c6bf5a93b5aea1e3643094
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_find: make use of SMBD_SMB2_* macros
metze
commit 559742f45f5e220d2f69ea2929f7c04c42c35192
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 15:00:23 2012 +0200
s3:smb2_sesssetup: make use of SMBD_SMB2_* macros
metze
commit 048c8d3db4feda04d7a4885ca83d5f5905760463
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:58:57 2012 +0200
s3:smb2_glue: make use of SMBD_SMB2_IN_HDR_PTR()
metze
commit 8cf817d7fd4cffe2d8ab207a12f8ec8df3c0c60f
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:55:58 2012 +0200
s3:smb2_read: make use of SMBD_SMB2_IN_BODY_PTR()
metze
commit 121dbd6210c00d3884685351d50c2ce1d0e486e9
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:57:35 2012 +0200
s3:smb2_notify: make use of SMBD_SMB2_IN_*_PTR()
metze
commit 88a34026f5fd87d8b4a3094a68968686cca8fcf0
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:55:58 2012 +0200
s3:smb2_flush: make use of SMBD_SMB2_IN_BODY_PTR()
metze
commit 52805c4169bbb8c9ac98a1851eaedb34f3f21523
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:55:58 2012 +0200
s3:smb2_close: make use of SMBD_SMB2_IN_BODY_PTR()
metze
commit 21742c3693f85222fdf7573fa194a1ed17b7e677
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:55:29 2012 +0200
s3:smb2_break: make use of SMBD_SMB2_IN_BODY_PTR()
metze
commit 7ee54cd9c45c30d1a384ffcdeea45b2a7898b117
Author: Stefan Metzmacher <metze at samba.org>
Date: Sun Aug 5 14:53:15 2012 +0200
s3:smbd: add helper macros to access smb2req->{in,out}.vector[]
For SMB3 encryption we need to change the vector layout
and we better hide this behind some central macros.
metze
-----------------------------------------------------------------------
Summary of changes:
source3/smbd/globals.h | 18 ++++++++++++++++++
source3/smbd/sesssetup.c | 1 -
source3/smbd/smb2_break.c | 6 ++----
source3/smbd/smb2_close.c | 3 +--
source3/smbd/smb2_create.c | 9 ++++-----
source3/smbd/smb2_find.c | 9 ++++-----
source3/smbd/smb2_flush.c | 3 +--
source3/smbd/smb2_getinfo.c | 9 ++++-----
source3/smbd/smb2_glue.c | 5 +----
source3/smbd/smb2_ioctl.c | 14 ++++++--------
source3/smbd/smb2_lock.c | 17 +++++++----------
source3/smbd/smb2_negprot.c | 7 +++----
source3/smbd/smb2_notify.c | 6 ++----
source3/smbd/smb2_read.c | 3 +--
source3/smbd/smb2_server.c | 32 ++++++++++++--------------------
source3/smbd/smb2_sesssetup.c | 14 ++++++--------
source3/smbd/smb2_setinfo.c | 9 ++++-----
source3/smbd/smb2_tcon.c | 12 +++++-------
source3/smbd/smb2_write.c | 9 ++++-----
19 files changed, 85 insertions(+), 101 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 94098f0..cf9d01b 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -474,6 +474,24 @@ struct smbd_smb2_request {
*/
struct tevent_req *subreq;
+#define SMBD_SMB2_IN_HDR_IOV(req) (&req->in.vector[req->current_idx+0])
+#define SMBD_SMB2_IN_HDR_PTR(req) (uint8_t *)(SMBD_SMB2_IN_HDR_IOV(req)->iov_base)
+#define SMBD_SMB2_IN_BODY_IOV(req) (&req->in.vector[req->current_idx+1])
+#define SMBD_SMB2_IN_BODY_PTR(req) (uint8_t *)(SMBD_SMB2_IN_BODY_IOV(req)->iov_base)
+#define SMBD_SMB2_IN_BODY_LEN(req) (SMBD_SMB2_IN_BODY_IOV(req)->iov_len)
+#define SMBD_SMB2_IN_DYN_IOV(req) (&req->in.vector[req->current_idx+2])
+#define SMBD_SMB2_IN_DYN_PTR(req) (uint8_t *)(SMBD_SMB2_IN_DYN_IOV(req)->iov_base)
+#define SMBD_SMB2_IN_DYN_LEN(req) (SMBD_SMB2_IN_DYN_IOV(req)->iov_len)
+
+#define SMBD_SMB2_OUT_HDR_IOV(req) (&req->out.vector[req->current_idx+0])
+#define SMBD_SMB2_OUT_HDR_PTR(req) (uint8_t *)(SMBD_SMB2_OUT_HDR_IOV(req)->iov_base)
+#define SMBD_SMB2_OUT_BODY_IOV(req) (&req->out.vector[req->current_idx+1])
+#define SMBD_SMB2_OUT_BODY_PTR(req) (uint8_t *)(SMBD_SMB2_OUT_BODY_IOV(req)->iov_base)
+#define SMBD_SMB2_OUT_BODY_LEN(req) (SMBD_SMB2_OUT_BODY_IOV(req)->iov_len)
+#define SMBD_SMB2_OUT_DYN_IOV(req) (&req->out.vector[req->current_idx+2])
+#define SMBD_SMB2_OUT_DYN_PTR(req) (uint8_t *)(SMBD_SMB2_OUT_DYN_IOV(req)->iov_base)
+#define SMBD_SMB2_OUT_DYN_LEN(req) (SMBD_SMB2_OUT_DYN_IOV(req)->iov_len)
+
struct {
/* the NBT header is not allocated */
uint8_t nbt_hdr[4];
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index f47a22d..4d58e7a 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -285,7 +285,6 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
if (session_info->session_key.length > 0) {
struct smbXsrv_session *x = session;
- uint8_t session_key[16];
/*
* Note: the SMB1 signing key is not truncated to 16 byte!
diff --git a/source3/smbd/smb2_break.c b/source3/smbd/smb2_break.c
index 77f4709..8143b8b 100644
--- a/source3/smbd/smb2_break.c
+++ b/source3/smbd/smb2_break.c
@@ -38,7 +38,6 @@ NTSTATUS smbd_smb2_request_process_break(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
- int i = req->current_idx;
uint8_t in_oplock_level;
uint64_t in_file_id_persistent;
uint64_t in_file_id_volatile;
@@ -49,7 +48,7 @@ NTSTATUS smbd_smb2_request_process_break(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_oplock_level = CVAL(inbody, 0x02);
@@ -83,7 +82,6 @@ static void smbd_smb2_request_oplock_break_done(struct tevent_req *subreq)
struct smbd_smb2_request *req = tevent_req_callback_data(subreq,
struct smbd_smb2_request);
const uint8_t *inbody;
- int i = req->current_idx;
uint64_t in_file_id_persistent;
uint64_t in_file_id_volatile;
uint8_t out_oplock_level = 0;
@@ -103,7 +101,7 @@ static void smbd_smb2_request_oplock_break_done(struct tevent_req *subreq)
return;
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_file_id_persistent = BVAL(inbody, 0x08);
in_file_id_volatile = BVAL(inbody, 0x10);
diff --git a/source3/smbd/smb2_close.c b/source3/smbd/smb2_close.c
index 6d93278..ee168c5 100644
--- a/source3/smbd/smb2_close.c
+++ b/source3/smbd/smb2_close.c
@@ -45,7 +45,6 @@ static void smbd_smb2_request_close_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_close(struct smbd_smb2_request *req)
{
const uint8_t *inbody;
- int i = req->current_idx;
uint16_t in_flags;
uint64_t in_file_id_persistent;
uint64_t in_file_id_volatile;
@@ -57,7 +56,7 @@ NTSTATUS smbd_smb2_request_process_close(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_flags = SVAL(inbody, 0x02);
in_file_id_persistent = BVAL(inbody, 0x08);
diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
index 7b5a262..c1cfa0c 100644
--- a/source3/smbd/smb2_create.c
+++ b/source3/smbd/smb2_create.c
@@ -101,7 +101,6 @@ NTSTATUS smbd_smb2_request_process_create(struct smbd_smb2_request *smb2req)
{
const uint8_t *inbody;
const struct iovec *indyniov;
- int i = smb2req->current_idx;
uint8_t in_oplock_level;
uint32_t in_impersonation_level;
uint32_t in_desired_access;
@@ -131,7 +130,7 @@ NTSTATUS smbd_smb2_request_process_create(struct smbd_smb2_request *smb2req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(smb2req, status);
}
- inbody = (const uint8_t *)smb2req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(smb2req);
in_oplock_level = CVAL(inbody, 0x03);
in_impersonation_level = IVAL(inbody, 0x04);
@@ -153,7 +152,7 @@ NTSTATUS smbd_smb2_request_process_create(struct smbd_smb2_request *smb2req)
* overlap
*/
- dyn_offset = SMB2_HDR_BODY + smb2req->in.vector[i+1].iov_len;
+ dyn_offset = SMB2_HDR_BODY + SMBD_SMB2_IN_BODY_LEN(smb2req);
if (in_name_offset == 0 && in_name_length == 0) {
/* This is ok */
@@ -164,7 +163,7 @@ NTSTATUS smbd_smb2_request_process_create(struct smbd_smb2_request *smb2req)
name_offset = in_name_offset - dyn_offset;
}
- indyniov = &smb2req->in.vector[i+2];
+ indyniov = SMBD_SMB2_IN_DYN_IOV(smb2req);
if (name_offset > indyniov->iov_len) {
return smbd_smb2_request_error(smb2req, NT_STATUS_INVALID_PARAMETER);
@@ -258,7 +257,7 @@ NTSTATUS smbd_smb2_request_process_create(struct smbd_smb2_request *smb2req)
static uint64_t get_mid_from_smb2req(struct smbd_smb2_request *smb2req)
{
- uint8_t *reqhdr = (uint8_t *)smb2req->out.vector[smb2req->current_idx].iov_base;
+ uint8_t *reqhdr = SMBD_SMB2_OUT_HDR_PTR(smb2req);
return BVAL(reqhdr, SMB2_HDR_MESSAGE_ID);
}
diff --git a/source3/smbd/smb2_find.c b/source3/smbd/smb2_find.c
index bb5e934..c2c0559 100644
--- a/source3/smbd/smb2_find.c
+++ b/source3/smbd/smb2_find.c
@@ -43,7 +43,6 @@ NTSTATUS smbd_smb2_request_process_find(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
- int i = req->current_idx;
uint8_t in_file_info_class;
uint8_t in_flags;
uint32_t in_file_index;
@@ -63,7 +62,7 @@ NTSTATUS smbd_smb2_request_process_find(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_file_info_class = CVAL(inbody, 0x02);
in_flags = CVAL(inbody, 0x03);
@@ -77,11 +76,11 @@ NTSTATUS smbd_smb2_request_process_find(struct smbd_smb2_request *req)
if (in_file_name_offset == 0 && in_file_name_length == 0) {
/* This is ok */
} else if (in_file_name_offset !=
- (SMB2_HDR_BODY + req->in.vector[i+1].iov_len)) {
+ (SMB2_HDR_BODY + SMBD_SMB2_IN_BODY_LEN(req))) {
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
- if (in_file_name_length > req->in.vector[i+2].iov_len) {
+ if (in_file_name_length > SMBD_SMB2_IN_DYN_LEN(req)) {
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
@@ -96,7 +95,7 @@ NTSTATUS smbd_smb2_request_process_find(struct smbd_smb2_request *req)
/* Take into account the output header. */
in_output_buffer_length -= 8;
- in_file_name_buffer.data = (uint8_t *)req->in.vector[i+2].iov_base;
+ in_file_name_buffer.data = SMBD_SMB2_IN_DYN_PTR(req);
in_file_name_buffer.length = in_file_name_length;
ok = convert_string_talloc(req, CH_UTF16, CH_UNIX,
diff --git a/source3/smbd/smb2_flush.c b/source3/smbd/smb2_flush.c
index 4f314cd..00a7158 100644
--- a/source3/smbd/smb2_flush.c
+++ b/source3/smbd/smb2_flush.c
@@ -35,7 +35,6 @@ NTSTATUS smbd_smb2_request_process_flush(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
- int i = req->current_idx;
uint64_t in_file_id_persistent;
uint64_t in_file_id_volatile;
struct files_struct *in_fsp;
@@ -45,7 +44,7 @@ NTSTATUS smbd_smb2_request_process_flush(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_file_id_persistent = BVAL(inbody, 0x08);
in_file_id_volatile = BVAL(inbody, 0x10);
diff --git a/source3/smbd/smb2_getinfo.c b/source3/smbd/smb2_getinfo.c
index efd65a9..0f4ed29 100644
--- a/source3/smbd/smb2_getinfo.c
+++ b/source3/smbd/smb2_getinfo.c
@@ -46,7 +46,6 @@ NTSTATUS smbd_smb2_request_process_getinfo(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
- int i = req->current_idx;
uint8_t in_info_type;
uint8_t in_file_info_class;
uint32_t in_output_buffer_length;
@@ -64,7 +63,7 @@ NTSTATUS smbd_smb2_request_process_getinfo(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_info_type = CVAL(inbody, 0x02);
in_file_info_class = CVAL(inbody, 0x03);
@@ -80,15 +79,15 @@ NTSTATUS smbd_smb2_request_process_getinfo(struct smbd_smb2_request *req)
if (in_input_buffer_offset == 0 && in_input_buffer_length == 0) {
/* This is ok */
} else if (in_input_buffer_offset !=
- (SMB2_HDR_BODY + req->in.vector[i+1].iov_len)) {
+ (SMB2_HDR_BODY + SMBD_SMB2_IN_BODY_LEN(req))) {
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
- if (in_input_buffer_length > req->in.vector[i+2].iov_len) {
+ if (in_input_buffer_length > SMBD_SMB2_IN_DYN_LEN(req)) {
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
- in_input_buffer.data = (uint8_t *)req->in.vector[i+2].iov_base;
+ in_input_buffer.data = SMBD_SMB2_IN_DYN_PTR(req);
in_input_buffer.length = in_input_buffer_length;
if (in_input_buffer.length > req->sconn->smb2.max_trans) {
diff --git a/source3/smbd/smb2_glue.c b/source3/smbd/smb2_glue.c
index d9d8f9a..1b2b4dd 100644
--- a/source3/smbd/smb2_glue.c
+++ b/source3/smbd/smb2_glue.c
@@ -26,10 +26,7 @@
struct smb_request *smbd_smb2_fake_smb_request(struct smbd_smb2_request *req)
{
struct smb_request *smbreq;
- const uint8_t *inhdr;
- int i = req->current_idx;
-
- inhdr = (const uint8_t *)req->in.vector[i+0].iov_base;
+ const uint8_t *inhdr = SMBD_SMB2_IN_HDR_PTR(req);
smbreq = talloc_zero(req, struct smb_request);
if (smbreq == NULL) {
diff --git a/source3/smbd/smb2_ioctl.c b/source3/smbd/smb2_ioctl.c
index 3502d35..c46520a 100644
--- a/source3/smbd/smb2_ioctl.c
+++ b/source3/smbd/smb2_ioctl.c
@@ -45,7 +45,6 @@ NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
- int i = req->current_idx;
uint32_t min_buffer_offset;
uint32_t max_buffer_offset;
uint32_t min_output_offset;
@@ -74,7 +73,7 @@ NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_ctl_code = IVAL(inbody, 0x04);
in_file_id_persistent = BVAL(inbody, 0x08);
@@ -87,8 +86,8 @@ NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req)
in_max_output_length = IVAL(inbody, 0x2C);
in_flags = IVAL(inbody, 0x30);
- min_buffer_offset = SMB2_HDR_BODY + req->in.vector[i+1].iov_len;
- max_buffer_offset = min_buffer_offset + req->in.vector[i+2].iov_len;
+ min_buffer_offset = SMB2_HDR_BODY + SMBD_SMB2_IN_BODY_LEN(req);
+ max_buffer_offset = min_buffer_offset + SMBD_SMB2_IN_DYN_LEN(req);
min_output_offset = min_buffer_offset;
/*
@@ -114,7 +113,7 @@ NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req)
allowed_length_in = max_buffer_offset - in_input_offset;
tmp_ofs = in_input_offset - min_buffer_offset;
- in_input_buffer.data = (uint8_t *)req->in.vector[i+2].iov_base;
+ in_input_buffer.data = SMBD_SMB2_IN_DYN_PTR(req);
in_input_buffer.data += tmp_ofs;
in_input_buffer.length = in_input_length;
min_output_offset += tmp_ofs;
@@ -151,7 +150,7 @@ NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req)
}
tmp_ofs = in_output_offset - min_buffer_offset;
- in_output_buffer.data = (uint8_t *)req->in.vector[i+2].iov_base;
+ in_output_buffer.data = SMBD_SMB2_IN_DYN_PTR(req);
in_output_buffer.data += tmp_ofs;
in_output_buffer.length = in_output_length;
}
@@ -234,7 +233,6 @@ static void smbd_smb2_request_ioctl_done(struct tevent_req *subreq)
struct smbd_smb2_request *req = tevent_req_callback_data(subreq,
struct smbd_smb2_request);
const uint8_t *inbody;
- int i = req->current_idx;
DATA_BLOB outbody;
DATA_BLOB outdyn;
uint32_t in_ctl_code;
@@ -279,7 +277,7 @@ static void smbd_smb2_request_ioctl_done(struct tevent_req *subreq)
out_input_offset = SMB2_HDR_BODY + 0x30;
out_output_offset = SMB2_HDR_BODY + 0x30;
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_ctl_code = IVAL(inbody, 0x04);
in_file_id_persistent = BVAL(inbody, 0x08);
diff --git a/source3/smbd/smb2_lock.c b/source3/smbd/smb2_lock.c
index aacf189..19e1ef0 100644
--- a/source3/smbd/smb2_lock.c
+++ b/source3/smbd/smb2_lock.c
@@ -55,7 +55,6 @@ static void smbd_smb2_request_lock_done(struct tevent_req *subreq);
NTSTATUS smbd_smb2_request_process_lock(struct smbd_smb2_request *req)
{
const uint8_t *inbody;
- const int i = req->current_idx;
uint16_t in_lock_count;
uint64_t in_file_id_persistent;
uint64_t in_file_id_volatile;
@@ -70,7 +69,7 @@ NTSTATUS smbd_smb2_request_process_lock(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_lock_count = CVAL(inbody, 0x02);
/* 0x04 - 4 bytes reserved */
@@ -81,7 +80,7 @@ NTSTATUS smbd_smb2_request_process_lock(struct smbd_smb2_request *req)
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
- if (((in_lock_count - 1) * 0x18) > req->in.vector[i+2].iov_len) {
+ if (((in_lock_count - 1) * 0x18) > SMBD_SMB2_IN_DYN_LEN(req)) {
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
@@ -99,7 +98,7 @@ NTSTATUS smbd_smb2_request_process_lock(struct smbd_smb2_request *req)
in_locks[l].flags = IVAL(lock_buffer, 0x10);
/* 0x14 - 4 reserved bytes */
- lock_buffer = (const uint8_t *)req->in.vector[i+2].iov_base;
+ lock_buffer = SMBD_SMB2_IN_DYN_PTR(req);
for (l=1; l < in_lock_count; l++) {
in_locks[l].offset = BVAL(lock_buffer, 0x00);
@@ -136,8 +135,7 @@ static void smbd_smb2_request_lock_done(struct tevent_req *subreq)
NTSTATUS error; /* transport error */
if (smb2req->cancelled) {
- const uint8_t *inhdr = (const uint8_t *)
- smb2req->in.vector[smb2req->current_idx].iov_base;
+ const uint8_t *inhdr = SMBD_SMB2_IN_HDR_PTR(smb2req);
uint64_t mid = BVAL(inhdr, SMB2_HDR_MESSAGE_ID);
struct smbd_smb2_lock_state *state;
@@ -451,7 +449,7 @@ struct blocking_lock_record *get_pending_smb2req_blr(struct smbd_smb2_request *s
if (!tevent_req_is_in_progress(smb2req->subreq)) {
return NULL;
}
- inhdr = (const uint8_t *)smb2req->in.vector[smb2req->current_idx].iov_base;
+ inhdr = SMBD_SMB2_IN_HDR_PTR(smb2req);
if (SVAL(inhdr, SMB2_HDR_OPCODE) != SMB2_OP_LOCK) {
return NULL;
}
@@ -811,7 +809,7 @@ void process_blocking_lock_queue_smb2(
continue;
}
- inhdr = (const uint8_t *)smb2req->in.vector[smb2req->current_idx].iov_base;
+ inhdr = SMBD_SMB2_IN_HDR_PTR(smb2req);
if (SVAL(inhdr, SMB2_HDR_OPCODE) == SMB2_OP_LOCK) {
reprocess_blocked_smb2_lock(smb2req, tv_curr);
}
@@ -834,7 +832,6 @@ void cancel_pending_lock_requests_by_fid_smb2(files_struct *fsp,
for (smb2req = sconn->smb2.requests; smb2req; smb2req = nextreq) {
struct smbd_smb2_lock_state *state = NULL;
files_struct *fsp_curr = NULL;
- int i = smb2req->current_idx;
struct blocking_lock_record *blr = NULL;
const uint8_t *inhdr;
@@ -849,7 +846,7 @@ void cancel_pending_lock_requests_by_fid_smb2(files_struct *fsp,
continue;
}
- inhdr = (const uint8_t *)smb2req->in.vector[i].iov_base;
+ inhdr = SMBD_SMB2_IN_HDR_PTR(smb2req);
if (SVAL(inhdr, SMB2_HDR_OPCODE) != SMB2_OP_LOCK) {
/* Not a lock call. */
continue;
diff --git a/source3/smbd/smb2_negprot.c b/source3/smbd/smb2_negprot.c
index 66d64cf..d086566 100644
--- a/source3/smbd/smb2_negprot.c
+++ b/source3/smbd/smb2_negprot.c
@@ -85,7 +85,6 @@ NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req)
NTSTATUS status;
const uint8_t *inbody;
const uint8_t *indyn = NULL;
- int i = req->current_idx;
DATA_BLOB outbody;
DATA_BLOB outdyn;
DATA_BLOB negprot_spnego_blob;
@@ -114,7 +113,7 @@ NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
dialect_count = SVAL(inbody, 0x02);
@@ -132,10 +131,10 @@ NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req)
}
expected_dyn_size = dialect_count * 2;
- if (req->in.vector[i+2].iov_len < expected_dyn_size) {
+ if (SMBD_SMB2_IN_DYN_LEN(req) < expected_dyn_size) {
return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
}
- indyn = (const uint8_t *)req->in.vector[i+2].iov_base;
+ indyn = SMBD_SMB2_IN_DYN_PTR(req);
for (c=0; protocol == PROTOCOL_NONE && c < dialect_count; c++) {
if (lp_srv_maxprotocol() < PROTOCOL_SMB3_00) {
diff --git a/source3/smbd/smb2_notify.c b/source3/smbd/smb2_notify.c
index aa6d190..886bc89 100644
--- a/source3/smbd/smb2_notify.c
+++ b/source3/smbd/smb2_notify.c
@@ -49,7 +49,6 @@ NTSTATUS smbd_smb2_request_process_notify(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
- int i = req->current_idx;
uint16_t in_flags;
uint32_t in_output_buffer_length;
uint64_t in_file_id_persistent;
@@ -62,7 +61,7 @@ NTSTATUS smbd_smb2_request_process_notify(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
- inbody = (const uint8_t *)req->in.vector[i+1].iov_base;
+ inbody = SMBD_SMB2_IN_BODY_PTR(req);
in_flags = SVAL(inbody, 0x02);
in_output_buffer_length = IVAL(inbody, 0x04);
@@ -107,7 +106,6 @@ static void smbd_smb2_request_notify_done(struct tevent_req *subreq)
{
struct smbd_smb2_request *req = tevent_req_callback_data(subreq,
struct smbd_smb2_request);
- int i = req->current_idx;
DATA_BLOB outbody;
DATA_BLOB outdyn;
uint16_t out_output_buffer_offset;
@@ -118,7 +116,7 @@ static void smbd_smb2_request_notify_done(struct tevent_req *subreq)
if (req->cancelled) {
struct smbd_smb2_notify_state *state = tevent_req_data(subreq,
struct smbd_smb2_notify_state);
- const uint8_t *inhdr = (const uint8_t *)req->in.vector[i].iov_base;
+ const uint8_t *inhdr = SMBD_SMB2_IN_HDR_PTR(req);
uint64_t mid = BVAL(inhdr, SMB2_HDR_MESSAGE_ID);
DEBUG(10,("smbd_smb2_request_notify_done: cancelled mid %llu\n",
diff --git a/source3/smbd/smb2_read.c b/source3/smbd/smb2_read.c
index 7fdbfaa..ba352f7 100644
--- a/source3/smbd/smb2_read.c
+++ b/source3/smbd/smb2_read.c
@@ -45,7 +45,6 @@ NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req)
{
NTSTATUS status;
const uint8_t *inbody;
--
Samba Shared Repository
More information about the samba-cvs
mailing list