@samitouri / QOSamiQemu / commits / c865b6bce5

tests/tcg/multiarch/test-mmap: Check mmaps beyond reserved_va

Unfixed mmap calls where start > reserved_va or the max guest addr should have a valid result. Signed-off-by: Bingwu Zhang <xtex@astrafall.org> Signed-off-by: Helge Deller <deller@gmx.de>

Bingwu Zhang committed Feb 28, 2026 at 00:46 UTC c865b6bce5d0c882b86fb7c3512174cdaf235017
1 file changed +15
tests/tcg/multiarch/test-mmap.c
+15
@@ -497,6 +497,20 @@ void check_shrink_mmaps(void)
497 fprintf(stdout, " passed\n");
498 }
499
500 +void check_mmaps_beyond_addr_space(void)
501 +{
502 + unsigned char *addr;
503 + addr = mmap((void *)(-(unsigned long)pagesize * 10), pagesize * 2,
504 + PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
505 + fprintf(stdout, "%s addr=%p errno=%d", __func__, (void *)addr, errno);
506 + fail_unless(addr != MAP_FAILED);
507 +
508 + memcpy(dummybuf, addr, 2 * pagesize);
509 + munmap(addr, 2 * pagesize);
510 +
511 + fprintf(stdout, " passed\n");
512 +}
513 +
514 int main(int argc, char **argv)
515 {
516 char tempname[] = "/tmp/.cmmapXXXXXX";
@@ -540,6 +554,7 @@ int main(int argc, char **argv)
554 check_file_unfixed_eof_mmaps();
555 check_invalid_mmaps();
556 check_shrink_mmaps();
557 + check_mmaps_beyond_addr_space();
558
559 /* Fails at the moment. */
560 /* check_aligned_anonymous_fixed_mmaps_collide_with_host(); */