From 7205a03883586822eeedabdd7b277240a5f22899 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 27 Oct 2011 21:41:11 +0200 Subject: [PATCH 01/15] s4:torture/smb2: fix compound.invalid2 against windows Tested against w2k8r2 with signing and win8pre0 without signing. metze Autobuild-User: Stefan Metzmacher Autobuild-Date: Mon Oct 31 21:40:25 CET 2011 on sn-devel-104 (cherry picked from commit c90870f9b728dfb827ebc2fe8ad67a7ca3a50c43) --- source4/torture/smb2/compound.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index 59ed9b1..808e01a 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -367,9 +367,9 @@ static bool test_compound_invalid2(struct torture_context *tctx, status = smb2_close_recv(req[1], &cl); CHECK_STATUS(status, NT_STATUS_OK); status = smb2_close_recv(req[2], &cl); - CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); + CHECK_STATUS(status, NT_STATUS_USER_SESSION_DELETED); status = smb2_close_recv(req[3], &cl); - CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); + CHECK_STATUS(status, NT_STATUS_USER_SESSION_DELETED); status = smb2_close_recv(req[4], &cl); CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); -- 1.7.0.4 From 1f0ef17ac14322e163d1dced44a8f1000d1444a6 Mon Sep 17 00:00:00 2001 From: Ira Cooper Date: Wed, 19 Sep 2012 18:39:07 +0000 Subject: [PATCH 02/15] s3: Compound requests should continue processing. This patch addresses #9173. Signed-off-by: Michael Adam (cherry picked from commit 75951946193c874b6db30c1b9c8722264c3ce656) Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_server.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index cef0677..dfd1d71 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -2100,10 +2100,9 @@ NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req, } /* - * if a request fails, all other remaining - * compounded requests should fail too + * Note: Even if there is an error, continue to process the request. + * per MS-SMB2. */ - req->next_status = NT_STATUS_INVALID_PARAMETER; return smbd_smb2_request_done_ex(req, status, body, info, __location__); } -- 1.7.0.4 From e664cb8013418723d861545a9e079179d0f1d72b Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 20 Sep 2012 00:35:52 +0200 Subject: [PATCH 03/15] s4:torture:smb2: fix compound.related3 test to work against windows (cherry picked from commit 8e525a29a7c6512f61e4647ecb2e0771e2019a49) Signed-off-by: Stefan Metzmacher --- source4/torture/smb2/compound.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index 808e01a..cca3a8d 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -166,9 +166,9 @@ static bool test_compound_related2(struct torture_context *tctx, status = smb2_close_recv(req[2], &cl); CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); status = smb2_close_recv(req[3], &cl); - CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); + CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); status = smb2_close_recv(req[4], &cl); - CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); + CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); tree->tid = saved_tid; tree->session->uid = saved_uid; -- 1.7.0.4 From 5d899a2731cd187b1d74d5b5f33d271209a02876 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 20 Sep 2012 00:36:29 +0200 Subject: [PATCH 04/15] s4:torture:smb2: fix the compound.invalid3 test to work against windows (cherry picked from commit bd8d50b451ea7f94efa7777fbe5dc0c2c19f6bf9) Signed-off-by: Stefan Metzmacher --- source4/torture/smb2/compound.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index cca3a8d..cd07447 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -439,9 +439,9 @@ static bool test_compound_invalid3(struct torture_context *tctx, status = smb2_close_recv(req[2], &cl); CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); status = smb2_close_recv(req[3], &cl); - CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); + CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); status = smb2_close_recv(req[4], &cl); - CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); + CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); smb2_util_unlink(tree, fname); done: -- 1.7.0.4 From 48635c25e70776a021b029b97fc3fb690bfd9c1d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 20 Sep 2012 05:10:28 +0200 Subject: [PATCH 05/15] s3:smb2_server: reset req->last_session_id and req->last_tid after using it If we can find a valid session or tcon we'll set it after the lookup, but it need to make sure to reset it if we don't find the session. This fixes a problem where a compound unrelated request between related requests doesn't reset the session. If we have 3 requests in a compound chain, request 3 should never use the id's cached from request 1. It should only every inherit handles from request 2. metze (similar to commit 2552b6632372b35cbd7b788c4e00091dfe520a41) Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_sesssetup.c | 2 ++ source3/smbd/smb2_tcon.c | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c index c90368f..1f48e33 100644 --- a/source3/smbd/smb2_sesssetup.c +++ b/source3/smbd/smb2_sesssetup.c @@ -835,6 +835,8 @@ NTSTATUS smbd_smb2_request_check_session(struct smbd_smb2_request *req) in_session_id = req->last_session_id; } + req->last_session_id = UINT64_MAX; + /* lookup an existing session */ p = idr_find(req->sconn->smb2.sessions.idtree, in_session_id); if (p == NULL) { diff --git a/source3/smbd/smb2_tcon.c b/source3/smbd/smb2_tcon.c index 5ca303e..5f0e3a9 100644 --- a/source3/smbd/smb2_tcon.c +++ b/source3/smbd/smb2_tcon.c @@ -298,6 +298,8 @@ NTSTATUS smbd_smb2_request_check_tcon(struct smbd_smb2_request *req) in_tid = req->last_tid; } + req->last_tid = UINT32_MAX; + /* lookup an existing session */ p = idr_find(req->session->tcons.idtree, in_tid); if (p == NULL) { -- 1.7.0.4 From 1cc343489db782e154662be7fa71f376b97a9f8c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 20 Sep 2012 00:52:19 +0200 Subject: [PATCH 06/15] s3:smb2_server: do the req->next_status check before the signing checks Windows 2012 returns NT_STATUS_INVALID_PARAMETER to the smb2.compound.invalid1 test if that uses signing (instead of NT_STATUS_ACCESS_DENIED). metze (similar to commit 4384485f82aac109bf4c4c31075e313e54b4c076) Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_server.c | 30 +++++++++++++++--------------- 1 files changed, 15 insertions(+), 15 deletions(-) diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index dfd1d71..6c110a4 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -1369,6 +1369,21 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) */ session_status = smbd_smb2_request_check_session(req); + if (flags & SMB2_HDR_FLAG_CHAINED) { + /* + * This check is mostly for giving the correct error code + * for compounded requests. + * + * TODO: we may need to move this after the session + * and tcon checks. + */ + if (!NT_STATUS_IS_OK(req->next_status)) { + return smbd_smb2_request_error(req, req->next_status); + } + } else { + req->compat_chain_fsp = NULL; + } + req->do_signing = false; if (flags & SMB2_HDR_FLAG_SIGNED) { if (!NT_STATUS_IS_OK(session_status)) { @@ -1387,21 +1402,6 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) return smbd_smb2_request_error(req, NT_STATUS_ACCESS_DENIED); } - if (flags & SMB2_HDR_FLAG_CHAINED) { - /* - * This check is mostly for giving the correct error code - * for compounded requests. - * - * TODO: we may need to move this after the session - * and tcon checks. - */ - if (!NT_STATUS_IS_OK(req->next_status)) { - return smbd_smb2_request_error(req, req->next_status); - } - } else { - req->compat_chain_fsp = NULL; - } - if (req->compound_related) { req->sconn->smb2.compound_related_in_progress = true; } -- 1.7.0.4 From 8caf33bbfc3c02c56bacead268c6e8030fc7c04d Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Sat, 22 Sep 2012 04:06:27 +0200 Subject: [PATCH 07/15] s3:smbd:smb2: add check for session_status for compound requests (cherry picked from commit 27d38b5c27bd96d5124c175d946718bf0836b8f4) Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_server.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 6c110a4..4736f98 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -1373,13 +1373,13 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) /* * This check is mostly for giving the correct error code * for compounded requests. - * - * TODO: we may need to move this after the session - * and tcon checks. */ if (!NT_STATUS_IS_OK(req->next_status)) { return smbd_smb2_request_error(req, req->next_status); } + if (!NT_STATUS_IS_OK(session_status)) { + return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); + } } else { req->compat_chain_fsp = NULL; } -- 1.7.0.4 From 9add34e66b1a6985d363c349ed366e175ff8ee0d Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Fri, 21 Sep 2012 21:43:36 +0200 Subject: [PATCH 08/15] s3:smbd:smb2: simplify smbd_smb2_request_validate() and smbd_smb2_request_dispatch() removes unnneccary checks/assignments for compound_related and next_status and duplicate setting of error status. And remove (now) unused next_status from struct smbd_smb2_request. Pair-Programmed-With: Stefan Metzmacher (similar to commit 1ae6f9c62629f8513bbe93a56775b3c64ff06832) Signed-off-by: Stefan Metzmacher --- source3/smbd/globals.h | 2 - source3/smbd/smb2_server.c | 52 ++----------------------------------------- 2 files changed, 3 insertions(+), 51 deletions(-) diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index eefc2c6..f515f19 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -369,8 +369,6 @@ struct smbd_smb2_request { struct smb_request *smb1req; struct files_struct *compat_chain_fsp; - NTSTATUS next_status; - /* * The sub request for async backend calls. * This is used for SMB2 Cancel. diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 4736f98..a595f80 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -426,7 +426,6 @@ static NTSTATUS smbd_smb2_request_validate(struct smbd_smb2_request *req) for (idx=1; idx < count; idx += 3) { const uint8_t *inhdr = NULL; - uint32_t flags; if (req->in.vector[idx].iov_len != SMB2_HDR_BODY) { return NT_STATUS_INVALID_PARAMETER; @@ -446,50 +445,6 @@ static NTSTATUS smbd_smb2_request_validate(struct smbd_smb2_request *req) if (!smb2_validate_message_id(req->sconn, inhdr)) { return NT_STATUS_INVALID_PARAMETER; } - - flags = IVAL(inhdr, SMB2_HDR_FLAGS); - if (idx == 1) { - /* - * the 1st request should never have the - * SMB2_HDR_FLAG_CHAINED flag set - */ - if (flags & SMB2_HDR_FLAG_CHAINED) { - req->next_status = NT_STATUS_INVALID_PARAMETER; - return NT_STATUS_OK; - } - } else if (idx == 4) { - /* - * the 2nd request triggers related vs. unrelated - * compounded requests - */ - if (flags & SMB2_HDR_FLAG_CHAINED) { - req->compound_related = true; - } - } else if (idx > 4) { -#if 0 - /* - * It seems the this tests are wrong - * see the SMB2-COMPOUND test - */ - - /* - * all other requests should match the 2nd one - */ - if (flags & SMB2_HDR_FLAG_CHAINED) { - if (!req->compound_related) { - req->next_status = - NT_STATUS_INVALID_PARAMETER; - return NT_STATUS_OK; - } - } else { - if (req->compound_related) { - req->next_status = - NT_STATUS_INVALID_PARAMETER; - return NT_STATUS_OK; - } - } -#endif - } } return NT_STATUS_OK; @@ -1374,9 +1329,6 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) * This check is mostly for giving the correct error code * for compounded requests. */ - if (!NT_STATUS_IS_OK(req->next_status)) { - return smbd_smb2_request_error(req, req->next_status); - } if (!NT_STATUS_IS_OK(session_status)) { return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); } @@ -1402,7 +1354,8 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) return smbd_smb2_request_error(req, NT_STATUS_ACCESS_DENIED); } - if (req->compound_related) { + if (flags & SMB2_HDR_FLAG_CHAINED) { + req->compound_related = true; req->sconn->smb2.compound_related_in_progress = true; } @@ -1853,6 +1806,7 @@ static NTSTATUS smbd_smb2_request_reply(struct smbd_smb2_request *req) } if (req->compound_related) { + req->compound_related = false; req->sconn->smb2.compound_related_in_progress = false; } -- 1.7.0.4 From bd0ddbbdbf165caf5cf28d44dee60e71d240d760 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 21 Sep 2012 22:20:20 +0200 Subject: [PATCH 09/15] s4:torture:smb2: extend the compound.invalid1 test Test that when turning the related flag back off for the last compound request, the return code changes from invalid parameter to file closed. Pair-Programmed-With: Michael Adam (cherry picked from commit 25437df8a65e56616499dda18c696f58be08f67a) Signed-off-by: Stefan Metzmacher --- source4/torture/smb2/compound.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index cd07447..e0fda08 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -252,9 +252,9 @@ static bool test_compound_invalid1(struct torture_context *tctx, const char *fname = "compound_invalid1.dat"; struct smb2_close cl; bool ret = true; - struct smb2_request *req[2]; + struct smb2_request *req[3]; - smb2_transport_credits_ask_num(tree->session->transport, 2); + smb2_transport_credits_ask_num(tree->session->transport, 3); smb2_util_unlink(tree, fname); @@ -278,7 +278,7 @@ static bool test_compound_invalid1(struct torture_context *tctx, 0x00200000; cr.in.fname = fname; - smb2_transport_compound_start(tree->session->transport, 2); + smb2_transport_compound_start(tree->session->transport, 3); /* passing the first request with the related flag is invalid */ smb2_transport_compound_set_related(tree->session->transport, true); @@ -292,11 +292,16 @@ static bool test_compound_invalid1(struct torture_context *tctx, cl.in.file.handle = hd; req[1] = smb2_close_send(tree, &cl); + smb2_transport_compound_set_related(tree->session->transport, false); + req[2] = smb2_close_send(tree, &cl); + status = smb2_create_recv(req[0], tree, &cr); /* TODO: check why this fails with --signing=required */ CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); status = smb2_close_recv(req[1], &cl); CHECK_STATUS(status, NT_STATUS_INVALID_PARAMETER); + status = smb2_close_recv(req[2], &cl); + CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); smb2_util_unlink(tree, fname); done: -- 1.7.0.4 From 2300c04dfe69cf8e13a6ad521d78cc0fd8dbd6dc Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 20 Sep 2012 16:04:01 +0200 Subject: [PATCH 10/15] s3:smb2_server: avoid segfault in smbd_smb2_request_pending_queue() Because we should not call smbd_smb2_request_error() on an request that is still running. If the subreq implementes a cancel function, this should take care of triggering smbd_smb2_request_error. metze Signed-off-by: Michael Adam (cherry picked from commit 9249871f40aab021d62d3154f8ca286b52f5ef76) Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_server.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index a595f80..a0e390e 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -947,9 +947,13 @@ NTSTATUS smbd_smb2_request_pending_queue(struct smbd_smb2_request *req, * request chain. This is not allowed. * Cancel the outstanding request. */ - tevent_req_cancel(req->subreq); + bool ok = tevent_req_cancel(req->subreq); + if (ok) { + return NT_STATUS_OK; + } + TALLOC_FREE(req->subreq); return smbd_smb2_request_error(req, - NT_STATUS_INSUFFICIENT_RESOURCES); + NT_STATUS_INTERNAL_ERROR); } if (DEBUGLEVEL >= 10) { -- 1.7.0.4 From c33ad8afda9abff9561a1bcd104e84d95ddecf58 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 20 Sep 2012 16:23:26 +0200 Subject: [PATCH 11/15] s3:smb2_notify: don't call tevent_req_done() from smbd_smb2_notify_cancel() smbd_notify_cancel_by_smbreq() will already trigger this via smbd_smb2_notify_reply() and smbd_smb2_notify_reply_trigger(). metze (cherry picked from commit 1f0dfd42f16c388abc7054a7b615d2e81031472b) Signed-off-by: Stefan Metzmacher --- source3/smbd/smb2_notify.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/source3/smbd/smb2_notify.c b/source3/smbd/smb2_notify.c index 72430eb..961ee9d 100644 --- a/source3/smbd/smb2_notify.c +++ b/source3/smbd/smb2_notify.c @@ -357,10 +357,9 @@ static bool smbd_smb2_notify_cancel(struct tevent_req *req) struct smbd_smb2_notify_state *state = tevent_req_data(req, struct smbd_smb2_notify_state); + state->smb2req->cancelled = true; smbd_notify_cancel_by_smbreq(state->smbreq); - state->smb2req->cancelled = true; - tevent_req_done(req); return true; } -- 1.7.0.4 From 0afb2ec3eea66146376d19331cc5cd526c605537 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 20 Sep 2012 00:41:04 +0200 Subject: [PATCH 12/15] s4:torture:smb2: don't skip the compound.interim1 test for non win7/win2k8 (cherry picked from commit 917e714831178b2a3d07c7f9d09711231a7ccf31) Signed-off-by: Stefan Metzmacher --- source4/torture/smb2/compound.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index e0fda08..1b03e63 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -470,10 +470,6 @@ static bool test_compound_interim1(struct torture_context *tctx, /* Win7 compound request implementation deviates substantially from the * SMB2 spec as noted in MS-SMB2 <159>, <162>. This, test currently * verifies the Windows behavior, not the general spec behavior. */ - if (!TARGET_IS_WIN7(tctx) && !TARGET_IS_W2K8(tctx)) { - torture_skip(tctx, "Interim test is specific to Windows server " - "behavior.\n"); - } smb2_transport_credits_ask_num(tree->session->transport, 5); -- 1.7.0.4 From 69ea206a2639132fad27aa77f3d522b373466335 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 20 Sep 2012 00:41:48 +0200 Subject: [PATCH 13/15] s4:torture:smb2: don't skip the compound.interim2 test for non win7/win2k8 (cherry picked from commit 8df0b023c51ed198d3054760447e1b273eada991) Signed-off-by: Stefan Metzmacher --- source4/torture/smb2/compound.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index 1b03e63..4bbfd9e 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -537,10 +537,6 @@ static bool test_compound_interim2(struct torture_context *tctx, /* Win7 compound request implementation deviates substantially from the * SMB2 spec as noted in MS-SMB2 <159>, <162>. This, test currently * verifies the Windows behavior, not the general spec behavior. */ - if (!TARGET_IS_WIN7(tctx) && !TARGET_IS_W2K8(tctx)) { - torture_skip(tctx, "Interim test is specific to Windows server " - "behavior.\n"); - } smb2_transport_credits_ask_num(tree->session->transport, 5); -- 1.7.0.4 From 857858dcbfc37358a9b589a10bee15f48c14540d Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 20 Sep 2012 00:43:54 +0200 Subject: [PATCH 14/15] s4:torture:smb2:compound: remove two unused macros (cherry picked from commit 6f6b1c6ac15f225978e8c2d67c1a817d9e098317) Signed-off-by: Stefan Metzmacher --- source4/torture/smb2/compound.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c index 4bbfd9e..22e578d 100644 --- a/source4/torture/smb2/compound.c +++ b/source4/torture/smb2/compound.c @@ -33,9 +33,6 @@ goto done; \ }} while (0) -#define TARGET_IS_W2K8(_tctx) (torture_setting_bool(_tctx, "w2k8", false)) -#define TARGET_IS_WIN7(_tctx) (torture_setting_bool(_tctx, "win7", false)) - static bool test_compound_related1(struct torture_context *tctx, struct smb2_tree *tree) { -- 1.7.0.4 From f519bf33a854af96bd2acdbb16b7463bb1d46c1a Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 20 Sep 2012 20:46:53 +0200 Subject: [PATCH 15/15] selftest: we fail samba3.smb2.compound.interim2 We currently return NT_STATUS_CANCELLED where we should return NT_STATUS_INTERNAL_ERROR. (similar to commit 841934647b06d6400148932cc8ce02a20c209610) Signed-off-by: Stefan Metzmacher --- source3/selftest/knownfail | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/source3/selftest/knownfail b/source3/selftest/knownfail index 95f01f6..d2cb953 100644 --- a/source3/selftest/knownfail +++ b/source3/selftest/knownfail @@ -5,6 +5,7 @@ samba3.posix_s3.rap.printing # fails sometimes on sn-devel samba3.posix_s3.rpc.spoolss.*printserver.enum_printers_old # fails on some hosts due to timing issues ? samba3.posix_s3.rpc.spoolss.printer.*addprinterex.print_test # another intermittent failure samba3.posix_s3.smb2.lock.*.rw-exclusive # another intermittent failure +samba3.posix_s3.smb2.compound.*interim2 # wrong return code (STATUS_CANCELLED) .*driver.add_driver_timestamps # we only can store dates, not timestamps samba3.raw.mux.* #This test is flaky on the async lock time samba3.smbtorture_s3.*OPLOCK4 # fails sometimes on sn-devel -- 1.7.0.4