https://bugs.kde.org/show_bug.cgi?id=381299

--- Comment #2 from John Reiser <jrei...@bitwagon.com> ---
I believe that the test case takes appropriate care so that the memory read
access via "*(int *)p2" is to a new page.  The "rounded up", and always
incrementing the brk(), and never decrementing it, takes care of that.

Linux guarantees that *new* pages are all zero; I believe that Solaris does,
too.  The purpose of the caution in the Solaris manual is to remind the
programmer that any *re*-allocated address space (an increment after a
decrement) can be undefined (and does not necessarily retain its old values, or
*any* known values.)

The test case has a bug on some 64-bit systems: the PAGE_MASK must be at least
as wide as uintptr_t:
    #define PAGE_SIZE (1ul<<12)
where the 'l' was omitted in the original.  The bug does not affect the results
for current x86_64 Linux using ET_EXEC, because all the addresses happen to be
in the lower 32 bits.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to