RLIMIT_DATA was changed in linux 4.7 to include mmap as well, not just
brk, however the test should work without the limit (unless the kernel
reserves space after brk that is not available for mmap, but that does
not seem to be the case).
t_error("vmfill failed\n");
return 1;
}
- errno = 0;
- T(t_setrlim(RLIMIT_DATA, 0));
// malloc should fail here
errno = 0;
else if (errno != ENOMEM)
t_error("malloc did not fail with ENOMEM, got %s\n", strerror(errno));
- // make some space available for mmap
- T(munmap((char*)p+65536, 65536));
+ // make space available for mmap, but ensure it's not contiguous with brk
+ T(munmap((char*)p+65536, n-65536));
// malloc should succeed now
q = malloc(10000);