On Tue, 28 Jul 2020 at 17:04, Alex Bennée <alex.ben...@linaro.org> wrote:
> Peter Maydell <peter.mayd...@linaro.org> writes:
> > Hi; Coverity thinks this conditional expression is suspicious
> > (CID 1431059):
> >
> >>              if (mmap_start != MAP_FAILED) {
> >>                  munmap((void *) align_start, guest_size);
> >> -                return (uintptr_t) mmap_start + offset;
> >> +                if (MAP_FIXED_NOREPLACE || mmap_start == (void *) 
> >> align_start) {
> >
> > because it's performing a logical OR operation where the left
> > operand is an integer constant that's neither 0 nor 1
> > (it's 1048576). What was this intended to be?
>
> It's 0 if the header doesn't provide it. If it's !0 we don't need to
> check the address because it should have been in the correct place.

OK. "if (MAP_FIXED_NOREPLACE != 0 || ...)" will probably satisfy
Coverity then.

-- PMM

Reply via email to