summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2011-08-25 23:33:41 +0200
committerJeremy Allison <jra@samba.org>2011-08-31 19:49:31 +0200
commit0d450d166bab952daf37d922e5c2e5cac16f1cc3 (patch)
tree74fe4ade53a6ec46ba72df15aaf04701a77cd348 /source3
parentfe6c56524075e1ca8e95d531dc1945c0ff6fa783 (diff)
downloadsamba-0d450d166bab952daf37d922e5c2e5cac16f1cc3.tar.gz
samba-0d450d166bab952daf37d922e5c2e5cac16f1cc3.tar.bz2
samba-0d450d166bab952daf37d922e5c2e5cac16f1cc3.zip
s3:smb2_server: keep compound_related on struct smbd_smb2_request
metze (cherry picked from commit cda93f04eb4e7e975b192a5fd33275ec638140ac)
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/globals.h1
-rw-r--r--source3/smbd/smb2_server.c7
2 files changed, 4 insertions, 4 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index b9bd21215c..0baf159dd9 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -355,6 +355,7 @@ struct smbd_smb2_request {
bool do_signing;
bool async;
bool cancelled;
+ bool compound_related;
/* fake smb1 request. */
struct smb_request *smb1req;
diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c
index 6fc4b5d702..0310cb1baa 100644
--- a/source3/smbd/smb2_server.c
+++ b/source3/smbd/smb2_server.c
@@ -360,7 +360,6 @@ static NTSTATUS smbd_smb2_request_validate(struct smbd_smb2_request *req)
{
int count;
int idx;
- bool compound_related = false;
count = req->in.vector_count;
@@ -408,7 +407,7 @@ static NTSTATUS smbd_smb2_request_validate(struct smbd_smb2_request *req)
* compounded requests
*/
if (flags & SMB2_HDR_FLAG_CHAINED) {
- compound_related = true;
+ req->compound_related = true;
}
} else if (idx > 4) {
#if 0
@@ -421,13 +420,13 @@ static NTSTATUS smbd_smb2_request_validate(struct smbd_smb2_request *req)
* all other requests should match the 2nd one
*/
if (flags & SMB2_HDR_FLAG_CHAINED) {
- if (!compound_related) {
+ if (!req->compound_related) {
req->next_status =
NT_STATUS_INVALID_PARAMETER;
return NT_STATUS_OK;
}
} else {
- if (compound_related) {
+ if (req->compound_related) {
req->next_status =
NT_STATUS_INVALID_PARAMETER;
return NT_STATUS_OK;