Message ID | 20201103142636.21125-1-peter.maydell@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | linux-user: Use "!= 0" when checking if MAP_FIXED_NOREPLACE is non-zero | expand |
On 11/3/20 3:26 PM, Peter Maydell wrote: > In pgd_find_hole_fallback(), Coverity doesn't like the use > of "if (MAP_FIXED_NOREPLACE || ...)" because it's using a > logical operator on a constant other than 0 or 1 and its > heuristic thinks we might have intended a bitwise operator > instead. > > The logic is correct (we are checking whether the host really > has a MAP_FIXED_NOREPLACE or whether we fell back to the > "#define as 0 to ignore" from osdep.h); make Coverity > happier by explicitly writing out the comparison with zero. > > Fixes: Coverity CID 1431059 > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > linux-user/elfload.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Le 03/11/2020 à 15:26, Peter Maydell a écrit : > In pgd_find_hole_fallback(), Coverity doesn't like the use > of "if (MAP_FIXED_NOREPLACE || ...)" because it's using a > logical operator on a constant other than 0 or 1 and its > heuristic thinks we might have intended a bitwise operator > instead. > > The logic is correct (we are checking whether the host really > has a MAP_FIXED_NOREPLACE or whether we fell back to the > "#define as 0 to ignore" from osdep.h); make Coverity > happier by explicitly writing out the comparison with zero. > > Fixes: Coverity CID 1431059 > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > linux-user/elfload.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/linux-user/elfload.c b/linux-user/elfload.c > index e19d0b5cb05..0b02a926025 100644 > --- a/linux-user/elfload.c > +++ b/linux-user/elfload.c > @@ -2188,7 +2188,8 @@ static uintptr_t pgd_find_hole_fallback(uintptr_t guest_size, uintptr_t brk, > PROT_NONE, flags, -1, 0); > if (mmap_start != MAP_FAILED) { > munmap((void *) align_start, guest_size); > - if (MAP_FIXED_NOREPLACE || mmap_start == (void *) align_start) { > + if (MAP_FIXED_NOREPLACE != 0 || > + mmap_start == (void *) align_start) { > return (uintptr_t) mmap_start + offset; > } > } > Applied to my linux-user-for-5.2 branch. Thanks, Laurent
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index e19d0b5cb05..0b02a926025 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -2188,7 +2188,8 @@ static uintptr_t pgd_find_hole_fallback(uintptr_t guest_size, uintptr_t brk, PROT_NONE, flags, -1, 0); if (mmap_start != MAP_FAILED) { munmap((void *) align_start, guest_size); - if (MAP_FIXED_NOREPLACE || mmap_start == (void *) align_start) { + if (MAP_FIXED_NOREPLACE != 0 || + mmap_start == (void *) align_start) { return (uintptr_t) mmap_start + offset; } }
In pgd_find_hole_fallback(), Coverity doesn't like the use of "if (MAP_FIXED_NOREPLACE || ...)" because it's using a logical operator on a constant other than 0 or 1 and its heuristic thinks we might have intended a bitwise operator instead. The logic is correct (we are checking whether the host really has a MAP_FIXED_NOREPLACE or whether we fell back to the "#define as 0 to ignore" from osdep.h); make Coverity happier by explicitly writing out the comparison with zero. Fixes: Coverity CID 1431059 Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- linux-user/elfload.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)