Re: Understanding Linux addr space, malloc, and heap

From: Arjan van de Ven
Date: Fri Oct 21 2005 - 10:47:52 EST


On Fri, 2005-10-21 at 16:37 +0100, Alex Bligh - linux-kernel wrote:
>
> --On 21 October 2005 17:22 +0200 Arjan van de Ven <arjan@xxxxxxxxxxxxx>
> wrote:
>
> > Ok I meant in the "while adhering to the standard" :)
>
> More precisely, as per the man page:
> > POSIX.1b says that mprotect can be used only on regions of memory
> > obtained from mmap(2).
>
> But what is interesting (if anything) is this:
> > ERRORS
> > EINVAL addr is not a valid pointer, or not a multiple of
> > PAGESIZE.
>
> So if he calls mprotect with memory allocated by malloc (which should
> fail), why doesn't he get EINVAL? He says it returns 0 (meaning it
> succeeded). Which it shouldn't (unless he is stupendously lucky in
> malloc's allocation, in which case it should work).

it succeeds all right; it just does other things than you expect
perhaps ;)

your alignment code had a bug, so it would align potentially to the
wrong piece of memory


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/