s4-smbtorture: try FSCTL_FIND_FILES_BY_SID with random blob data in RAW-IOCTL.
authorGünther Deschner <gd@samba.org>
Wed, 15 Sep 2010 21:02:43 +0000 (23:02 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 15 Sep 2010 22:18:09 +0000 (00:18 +0200)
Guenther

source4/torture/raw/ioctl.c

index 87fbfaaab63471988628c98b4a3d5edb5ab7eaca..99dc039a7f4b18d6e2fa32f8447d3e77b8b0fb51 100644 (file)
@@ -98,6 +98,27 @@ static bool test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                goto done;
        }
 
+       printf("Trying FSCTL_FIND_FILES_BY_SID\n");
+       nt.ioctl.level = RAW_IOCTL_NTIOCTL;
+       nt.ntioctl.in.function = FSCTL_FIND_FILES_BY_SID;
+       nt.ntioctl.in.file.fnum = fnum;
+       nt.ntioctl.in.fsctl = true;
+       nt.ntioctl.in.filter = 0;
+       nt.ntioctl.in.max_data = 0;
+       nt.ntioctl.in.blob = data_blob(NULL, 1024);
+       /* definitely not a sid... */
+       generate_random_buffer(nt.ntioctl.in.blob.data,
+                              nt.ntioctl.in.blob.length);
+       nt.ntioctl.in.blob.data[1] = 15+1;
+       status = smb_raw_ioctl(cli->tree, mem_ctx, &nt);
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER) &&
+           !NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED)) {
+               printf("Got unexpected error code: %s\n",
+                       nt_errstr(status));
+               ret = false;
+               goto done;
+       }
+
        printf("trying sparse file\n");
        nt.ioctl.level = RAW_IOCTL_NTIOCTL;
        nt.ntioctl.in.function = FSCTL_SET_SPARSE;