summaryrefslogtreecommitdiff
path: root/source4/torture/torture_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture/torture_util.c')
-rw-r--r--source4/torture/torture_util.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/source4/torture/torture_util.c b/source4/torture/torture_util.c
index 27c2892c47..8dbec60b12 100644
--- a/source4/torture/torture_util.c
+++ b/source4/torture/torture_util.c
@@ -331,12 +331,24 @@ BOOL torture_set_file_attribute(struct cli_tree *tree, const char *fname, uint16
*/
NTSTATUS torture_set_sparse(struct cli_tree *tree, int fnum)
{
- struct smb_ntioctl nt;
+ union smb_ioctl nt;
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ mem_ctx = talloc_init("torture_set_sparse");
+ if (!mem_ctx) {
+ return NT_STATUS_NO_MEMORY;
+ }
- nt.in.function = 0x900c4;
- nt.in.fnum = fnum;
- nt.in.fsctl = True;
- nt.in.filter = 0;
+ nt.ntioctl.level = RAW_IOCTL_NTIOCTL;
+ nt.ntioctl.in.function = 0x900c4;
+ nt.ntioctl.in.fnum = fnum;
+ nt.ntioctl.in.fsctl = True;
+ nt.ntioctl.in.filter = 0;
+
+ status = smb_raw_ioctl(tree, mem_ctx, &nt);
+
+ talloc_destroy(mem_ctx);
- return smb_raw_ntioctl(tree, &nt);
+ return status;
}