[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/9] bsd-user: mmap return ENOMEM on overflow
From: |
Warner Losh |
Subject: |
[PATCH 4/9] bsd-user: mmap return ENOMEM on overflow |
Date: |
Thu, 16 Sep 2021 20:56:30 -0600 |
mmap should return ENOMEM on len overflow rather than EINVAL. Return
EINVAL when len == 0 and ENOMEM when the rounded to a page length is 0.
Found by make check-tcg.
Signed-off-by: Warner Losh <imp@bsdimp.com>
---
bsd-user/mmap.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c
index c40059d7fc..0acc2db712 100644
--- a/bsd-user/mmap.c
+++ b/bsd-user/mmap.c
@@ -454,11 +454,18 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int
prot,
goto fail;
}
- len = TARGET_PAGE_ALIGN(len);
if (len == 0) {
errno = EINVAL;
goto fail;
}
+
+ /* Check for overflows */
+ len = TARGET_PAGE_ALIGN(len);
+ if (len == 0) {
+ errno = ENOMEM;
+ goto fail;
+ }
+
real_start = start & qemu_host_page_mask;
host_offset = offset & qemu_host_page_mask;
--
2.32.0
- [PATCH 0/9] bsd-user mmap fixes, Warner Losh, 2021/09/16
- [PATCH 2/9] bsd-user: Apply fb7e378cf9c from linux-user (fix FORTIFY warnings), Warner Losh, 2021/09/16
- [PATCH 1/9] bsd-user: Apply e6deac9cf99 from linux-user (zero anonymous memory), Warner Losh, 2021/09/16
- [PATCH 3/9] bsd-user: MAP_ symbols are defined, so no need for ifdefs, Warner Losh, 2021/09/16
- [PATCH 4/9] bsd-user: mmap return ENOMEM on overflow,
Warner Losh <=
- [PATCH 5/9] bsd-user: mmap prefer MAP_ANON for BSD, Warner Losh, 2021/09/16
- [PATCH 6/9] bsd-user: mmap line wrap change, Warner Losh, 2021/09/16
- [PATCH 7/9] bsd-user: Don't try to mmap fd when it is -1 independently from MAP_ANONYMOUS flag, Warner Losh, 2021/09/16
- [PATCH 8/9] bsd-user: Implement MAP_EXCL, required by jemalloc in head, Warner Losh, 2021/09/16
- [PATCH 9/9] bsd-user: Apply 86abac06c14 from linux-user (target_mprotect can't fail), Warner Losh, 2021/09/16