[CRIU] [PATCH] zdtm: fix integer literal type bug in maps03

Jamie Liu jamieliu at google.com
Wed Apr 2 17:53:40 PDT 2014


maps03 should have caught the bug fixed by 288cf5174165 "restore: mutate
tgt_addr in map_private_vma", but didn't because integer literals
(defaulting to 32-bit ints) were shifted out of range.

Signed-off-by: Jamie Liu <jamieliu at google.com>
---
 test/zdtm/live/static/maps03.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/test/zdtm/live/static/maps03.c b/test/zdtm/live/static/maps03.c
index 207e2a0..d5d6451 100644
--- a/test/zdtm/live/static/maps03.c
+++ b/test/zdtm/live/static/maps03.c
@@ -12,22 +12,22 @@ int main(int argc, char **argv)
 	unsigned char *mem;
 
 	test_msg("Alloc huge VMA\n");
-	mem = (void *)mmap(NULL, (10 << 30), PROT_READ | PROT_WRITE,
+	mem = (void *)mmap(NULL, (10L << 30), PROT_READ | PROT_WRITE,
 			   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
 	if ((void *)mem == MAP_FAILED) {
 		err("mmap failed: %m");
 		return -1;
 	}
 
-	mem[4 << 30] = 1;
-	mem[8 << 30] = 2;
+	mem[4L << 30] = 1;
+	mem[8L << 30] = 2;
 
 	test_daemon();
 	test_waitsig();
 
 	test_msg("Testing restored data\n");
 
-	if (mem[4 << 30] != 1 || mem[8 << 30] != 2) {
+	if (mem[4L << 30] != 1 || mem[8L << 30] != 2) {
 		fail("Data corrupted!\n");
 		exit(1);
 	}
-- 
1.9.1.423.g4596e3a



More information about the CRIU mailing list