fix malloc-brk-fail
[libc-test] / src / regression / malloc-brk-fail.c
index 13908d8..420b000 100644 (file)
@@ -1,7 +1,9 @@
+// commit 5446303328adf4b4e36d9fba21848e6feb55fab4 2014-04-02
 // malloc should not fail if brk fails but mmap can still allocate
 #include <stdlib.h>
 #include <errno.h>
 #include <string.h>
+#include <sys/mman.h>
 #include <sys/resource.h>
 #include "test.h"
 
@@ -19,8 +21,6 @@ int main(void)
                t_error("vmfill failed\n");
                return 1;
        }
-       errno = 0;
-       T(t_setrlim(RLIMIT_DATA, 0));
 
        // malloc should fail here
        errno = 0;
@@ -30,8 +30,8 @@ int main(void)
        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(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);