This test failed on ppc64 with 64k pagesize because memory allocation used mmap() instead of advancing heap.
Use mallopt(M_MMAP_THRESHOLD,..) with large enough value to discourage use of mmap(). Also set length in mprotect to pagesize, kernel silently aligns it to pagesize anyway. Signed-off-by: Jan Stancek <[email protected]> Cc: Paul Moore <[email protected]> Cc: Stephen Smalley <[email protected]> --- tests/mmap/mprotect_heap.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/mmap/mprotect_heap.c b/tests/mmap/mprotect_heap.c index 691299493c3f..8b4321d6fc0b 100644 --- a/tests/mmap/mprotect_heap.c +++ b/tests/mmap/mprotect_heap.c @@ -3,6 +3,7 @@ #include <stdlib.h> #include <errno.h> #include <sys/mman.h> +#include <malloc.h> int main(void) { @@ -10,13 +11,19 @@ int main(void) int rc; int pagesize = getpagesize(); + rc = mallopt(M_MMAP_THRESHOLD, pagesize * 16); + if (rc != 1) { + fprintf(stderr, "mallopt failed: %d\n", rc); + exit(1); + } + rc = posix_memalign(&ptr, pagesize, pagesize); if (rc) { fprintf(stderr, "posix_memalign failed: %d\n", rc); exit(1); } - rc = mprotect(ptr, 4096, PROT_READ | PROT_EXEC); + rc = mprotect(ptr, pagesize, PROT_READ | PROT_EXEC); if (rc < 0) { perror("mprotect"); exit(1); -- 1.8.3.1 _______________________________________________ Selinux mailing list [email protected] To unsubscribe, send email to [email protected]. To get help, send an email containing "help" to [email protected].
