if pthread_create fails, it must not attempt mmap if there is no mapping
authorRich Felker <dalias@aerifal.cx>
Sat, 2 Feb 2013 03:23:24 +0000 (22:23 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 2 Feb 2013 03:23:24 +0000 (22:23 -0500)
this bug was introduced when support for application-provided stacks
was originally added.

src/thread/pthread_create.c

index 4c1deca..1e55a6f 100644 (file)
@@ -188,7 +188,7 @@ int pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict attrp
 
        if (ret < 0) {
                a_dec(&libc.threads_minus_1);
 
        if (ret < 0) {
                a_dec(&libc.threads_minus_1);
-               munmap(map, size);
+               if (map) munmap(map, size);
                return EAGAIN;
        }
 
                return EAGAIN;
        }