[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 4/9] bsd-user/mmap.c: mmap return ENOMEM on overflow
From: |
Kyle Evans |
Subject: |
Re: [PATCH v3 4/9] bsd-user/mmap.c: mmap return ENOMEM on overflow |
Date: |
Thu, 14 Oct 2021 10:13:15 -0500 |
On Fri, Oct 8, 2021 at 4:27 PM Warner Losh <imp@bsdimp.com> wrote:
>
> 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>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> 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 6f33aec58b..f0be3b12cf 100644
> --- a/bsd-user/mmap.c
> +++ b/bsd-user/mmap.c
> @@ -455,11 +455,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
>
>
Reviewed-by: Kyle Evans <kevans@FreeBSD.org>
- [PATCH v3 0/9] bsd-user mmap fixes, Warner Losh, 2021/10/08
- [PATCH v3 1/9] bsd-user/mmap.c: Always zero MAP_ANONYMOUS memory in mmap_frag(), Warner Losh, 2021/10/08
- [PATCH v3 2/9] bsd-user/mmap.c: check pread's return value to fix warnings with _FORTIFY_SOURCE, Warner Losh, 2021/10/08
- [PATCH v3 6/9] bsd-user/mmap.c: Convert to qemu_log logging for mmap debugging, Warner Losh, 2021/10/08
- [PATCH v3 4/9] bsd-user/mmap.c: mmap return ENOMEM on overflow, Warner Losh, 2021/10/08
- Re: [PATCH v3 4/9] bsd-user/mmap.c: mmap return ENOMEM on overflow,
Kyle Evans <=
- [PATCH v3 3/9] bsd-user/mmap.c: MAP_ symbols are defined, so no need for ifdefs, Warner Losh, 2021/10/08
- [PATCH v3 5/9] bsd-user/mmap.c: mmap prefer MAP_ANON for BSD, Warner Losh, 2021/10/08
- [PATCH v3 8/9] bsd-user/mmap.c: Implement MAP_EXCL, required by jemalloc in head, Warner Losh, 2021/10/08
- [PATCH v3 7/9] bsd-user/mmap.c: Don't mmap fd == -1 independently from MAP_ANON flag, Warner Losh, 2021/10/08
- [PATCH v3 9/9] bsd-user/mmap.c: assert that target_mprotect cannot fail, Warner Losh, 2021/10/08