diff options
| author | Bingwu Zhang <xtex@astrafall.org> | 2026-02-28 00:46:33 +0800 |
|---|---|---|
| committer | Michael Tokarev <mjt@tls.msk.ru> | 2026-03-11 16:41:49 +0300 |
| commit | aa3b7cc939291b53fec5f4554d49d6746d1fef40 (patch) | |
| tree | 2ec733ee735224ad43a38321d0a42af4734e6ce8 | |
| parent | 99dbd039e0dc4c0ecd55996a8bb7f4d638f53f52 (diff) | |
| download | qemu-aa3b7cc939291b53fec5f4554d49d6746d1fef40.tar.gz qemu-aa3b7cc939291b53fec5f4554d49d6746d1fef40.zip | |
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>
(cherry picked from commit c865b6bce5d0c882b86fb7c3512174cdaf235017)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
| -rw-r--r-- | tests/tcg/multiarch/test-mmap.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/tcg/multiarch/test-mmap.c b/tests/tcg/multiarch/test-mmap.c index e297f4b1e9..fd9055a90e 100644 --- a/tests/tcg/multiarch/test-mmap.c +++ b/tests/tcg/multiarch/test-mmap.c @@ -491,6 +491,20 @@ void check_shrink_mmaps(void) munmap(c, 2 * pagesize); } +void check_mmaps_beyond_addr_space(void) +{ + unsigned char *addr; + addr = mmap((void *)(-(unsigned long)pagesize * 10), pagesize * 2, + PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + fprintf(stdout, "%s addr=%p errno=%d", __func__, (void *)addr, errno); + fail_unless(addr != MAP_FAILED); + + memcpy(dummybuf, addr, 2 * pagesize); + munmap(addr, 2 * pagesize); + + fprintf(stdout, " passed\n"); +} + int main(int argc, char **argv) { char tempname[] = "/tmp/.cmmapXXXXXX"; @@ -534,6 +548,7 @@ int main(int argc, char **argv) check_file_unfixed_eof_mmaps(); check_invalid_mmaps(); check_shrink_mmaps(); + check_mmaps_beyond_addr_space(); /* Fails at the moment. */ /* check_aligned_anonymous_fixed_mmaps_collide_with_host(); */ |
