In static bool test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx):
printf("Trying bad handle\n");
nt.ntioctl.in.file.fnum = fnum+1;
status = smb_raw_ioctl(cli->tree, mem_ctx, &nt);
The test case passes both a bad handle (nt.ntioctl.in.file.fnum = fnum+1;) and a possibly unsupported IOCTL function (nt.ntioctl.in.function = FSCTL_REQUEST_BATCH_OPLOCK;, from previous test packet)
As a result, the server may respond NT_STATUS_INVALID_HANDLE or NT_STATUS_UNSUPPORTED to this test condition.
The test case should use a more precise test condition. If the intent is to test server response on bad handles, the test case should put in a well-konwn supported IOCTL function.
Steve, another bug for you.