[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