Index: source4/torture/smb2/lock.c =================================================================== --- source4/torture/smb2/lock.c.orig 2016-08-11 07:51:05.000000000 +0000 +++ source4/torture/smb2/lock.c 2017-05-31 12:30:00.628878125 +0000 @@ -2893,9 +2893,9 @@ }; lck = (struct smb2_lock) { .in.locks = &el, - .in.lock_count = 0x0001, - .in.file.handle = h + .in.lock_count = 0x0001 }; + lck.in.file.handle = h; torture_comment(torture, "Testing Lock (ignored) Replay detection:\n"); lck.in.lock_sequence = 0x010 + 0x1; @@ -2916,13 +2916,13 @@ SIVAL(res_req, 4, 0); /* reserved */ ioctl = (struct smb2_ioctl) { .level = RAW_IOCTL_SMB2, - .in.file.handle = h, .in.function = FSCTL_LMR_REQ_RESILIENCY, .in.max_response_size = 0, .in.flags = SMB2_IOCTL_FLAG_IS_FSCTL, .in.out.data = res_req, .in.out.length = sizeof(res_req) }; + ioctl.in.file.handle = h; status = smb2_ioctl(tree, torture, &ioctl); CHECK_STATUS(status, NT_STATUS_OK); Index: source4/torture/smb2/replay.c =================================================================== --- source4/torture/smb2/replay.c.orig 2016-08-11 07:51:05.000000000 +0000 +++ source4/torture/smb2/replay.c 2017-05-31 12:33:02.998126975 +0000 @@ -278,19 +278,17 @@ status = smb2_util_write(tree, h, buf, 0, ARRAY_SIZE(buf)); CHECK_STATUS(status, NT_STATUS_OK); - f = (struct smb2_flush) { - .in.file.handle = h - }; + f.in.file.handle = h; torture_comment(tctx, "Trying flush\n"); status = smb2_flush(tree, &f); CHECK_STATUS(status, NT_STATUS_OK); rd = (struct smb2_read) { - .in.file.handle = h, .in.length = 10, .in.offset = 0, .in.min_count = 1 }; + rd.in.file.handle = h; torture_comment(tctx, "Trying read\n"); status = smb2_read(tree, tmp_ctx, &rd); CHECK_STATUS(status, NT_STATUS_OK); @@ -304,9 +302,9 @@ CHECK_STATUS(status, NT_STATUS_OK); qfinfo = (union smb_fileinfo) { - .generic.level = RAW_SFILEINFO_POSITION_INFORMATION, - .generic.in.file.handle = h + .generic.level = RAW_SFILEINFO_POSITION_INFORMATION }; + qfinfo.generic.in.file.handle = h; torture_comment(tctx, "Trying getinfo\n"); status = smb2_getinfo_file(tree, tmp_ctx, &qfinfo); CHECK_STATUS(status, NT_STATUS_OK); @@ -314,11 +312,11 @@ ioctl = (union smb_ioctl) { .smb2.level = RAW_IOCTL_SMB2, - .smb2.in.file.handle = h, .smb2.in.function = FSCTL_CREATE_OR_GET_OBJECT_ID, .smb2.in.max_response_size = 64, .smb2.in.flags = SMB2_IOCTL_FLAG_IS_FSCTL }; + ioctl.smb2.in.file.handle = h; torture_comment(tctx, "Trying ioctl\n"); status = smb2_ioctl(tree, tmp_ctx, &ioctl.smb2); CHECK_STATUS(status, NT_STATUS_OK); @@ -326,9 +324,9 @@ lck = (struct smb2_lock) { .in.locks = el, .in.lock_count = 0x0001, - .in.lock_sequence = 0x00000000, - .in.file.handle = h + .in.lock_sequence = 0x00000000 }; + lck.in.file.handle = h; el[0].reserved = 0x00000000; el[0].flags = SMB2_LOCK_FLAG_EXCLUSIVE | SMB2_LOCK_FLAG_FAIL_IMMEDIATELY; @@ -1636,10 +1634,10 @@ struct smb2_read rd; rd = (struct smb2_read) { - .in.file.handle = handle, .in.length = blob.length, .in.offset = 0 }; + rd.in.file.handle = handle; torture_assert_ntstatus_ok_goto(tctx, smb2_read(tree, tree, &rd), @@ -1655,11 +1653,11 @@ union smb_ioctl ioctl; ioctl = (union smb_ioctl) { .smb2.level = RAW_IOCTL_SMB2, - .smb2.in.file.handle = handle, .smb2.in.function = FSCTL_CREATE_OR_GET_OBJECT_ID, .smb2.in.max_response_size = 64, .smb2.in.flags = SMB2_IOCTL_FLAG_IS_FSCTL }; + ioctl.smb2.in.file.handle = handle; status = smb2_ioctl(tree, mem_ctx, &ioctl.smb2); break; } @@ -1677,9 +1675,9 @@ } qfinfo = (union smb_fileinfo) { - .generic.level = RAW_SFILEINFO_POSITION_INFORMATION, - .generic.in.file.handle = handle + .generic.level = RAW_SFILEINFO_POSITION_INFORMATION }; + qfinfo.generic.in.file.handle = handle; torture_assert_ntstatus_ok_goto(tctx, smb2_getinfo_file(tree, mem_ctx, &qfinfo), @@ -2016,10 +2014,10 @@ * Perform a Read with incremented ChannelSequence */ rd = (struct smb2_read) { - .in.file.handle = *h1, .in.length = sizeof(buf), .in.offset = 0 }; + rd.in.file.handle = *h1; status = smb2_read(tree1, tree1, &rd); CHECK_STATUS(status, NT_STATUS_OK); @@ -2057,10 +2055,10 @@ * Performing a Read with stale ChannelSequence is allowed */ rd = (struct smb2_read) { - .in.file.handle = *h1, .in.length = ARRAY_SIZE(buf), .in.offset = 0 }; + rd.in.file.handle = *h1; status = smb2_read(tree1, tree1, &rd); CHECK_STATUS(status, NT_STATUS_OK); @@ -2125,10 +2123,10 @@ * Read back from File to verify what was written */ rd = (struct smb2_read) { - .in.file.handle = *h1, .in.length = ARRAY_SIZE(buf), .in.offset = 0 }; + rd.in.file.handle = *h1; status = smb2_read(tree1, tree1, &rd); CHECK_STATUS(status, NT_STATUS_OK); @@ -2352,9 +2350,9 @@ torture_reset_break_info(tctx, &break_info); qfinfo = (union smb_fileinfo) { - .generic.level = RAW_SFILEINFO_POSITION_INFORMATION, - .generic.in.file.handle = *h + .generic.level = RAW_SFILEINFO_POSITION_INFORMATION }; + qfinfo.generic.in.file.handle = *h; torture_comment(tctx, "Trying getinfo\n"); status = smb2_getinfo_file(tree, mem_ctx, &qfinfo); CHECK_STATUS(status, NT_STATUS_OK);