torture4's smb2.compound test seems wrong or Samba 3.6.X is wrong in its handling of subsequent responses after and error in a compound request
Richard Sharpe
realrichardsharpe at gmail.com
Wed Jan 30 14:04:17 MST 2013
Hi folks,
I was running the smb2.compound test from torture4 in the master branch.
It fails in source4/torture/smb2/compound.c:test_compound_unrelated
saying that it got an NT_STATUS_INVALID_PARAMETER when it expected
NT_STATUS_FILE_CLOSED.
The code is:
ZERO_STRUCT(cl);
cl.in.file.handle = hd;
req[1] = smb2_close_send(tree, &cl);
req[2] = smb2_close_send(tree, &cl);
req[3] = smb2_close_send(tree, &cl);
req[4] = smb2_close_send(tree, &cl);
status = smb2_create_recv(req[0], tree, &cr);
CHECK_STATUS(status, NT_STATUS_OK);
status = smb2_close_recv(req[1], &cl);
CHECK_STATUS(status, NT_STATUS_FILE_CLOSED);
status = smb2_close_recv(req[2], &cl);
CHECK_STATUS(status, NT_STATUS_FILE_CLOSED); // Fails here
status = smb2_close_recv(req[3], &cl);
CHECK_STATUS(status, NT_STATUS_FILE_CLOSED);
status = smb2_close_recv(req[4], &cl);
CHECK_STATUS(status, NT_STATUS_FILE_CLOSED);
This fails against Samba 3.6.X because in
source3/smbd/smb2_server.d:smbd_smb2_request_error_ex when an error
occurs, we set req->next_status to NT_STATUS_INVALID_PARAMETER.
One of them must be wrong. Does anyone know which off the top of their heads?
I want to avoid freaking out QA when I suggest that they run this test
with signing on, so I need to resolve this and several other errors,
including a Samba crash. I guess I will go read the spec.
--
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)
More information about the samba-technical
mailing list