summaryrefslogtreecommitdiffstats
path: root/libc/stdlib
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-01-14 22:37:55 +0000
committerEric Andersen <andersen@codepoet.org>2004-01-14 22:37:55 +0000
commita5414fd15ca7b0629ce77950585d4002ff2ef09a (patch)
tree1f311a4646a6085b67e82b8217f2fdfa2e04f5d1 /libc/stdlib
parent1b44e1b2bbddb7d05a78cb3874b6a2baf8faf59a (diff)
downloaduClibc-alpine-a5414fd15ca7b0629ce77950585d4002ff2ef09a.tar.bz2
uClibc-alpine-a5414fd15ca7b0629ce77950585d4002ff2ef09a.tar.xz
Include missing errno.h header (as noted by Alan Hourihane).
Fix uninitialized pthread mutex used to lock the list of aligned memory blocks.
Diffstat (limited to 'libc/stdlib')
-rw-r--r--libc/stdlib/malloc-simple/alloc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libc/stdlib/malloc-simple/alloc.c b/libc/stdlib/malloc-simple/alloc.c
index fcac02927..4c6edd1f9 100644
--- a/libc/stdlib/malloc-simple/alloc.c
+++ b/libc/stdlib/malloc-simple/alloc.c
@@ -6,12 +6,14 @@
* Parts of the memalign code were stolen from malloc-930716.
*/
+#define _GNU_SOURCE
#include <features.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <errno.h>
#include <sys/mman.h>
@@ -121,9 +123,9 @@ void free(void *ptr)
#ifdef L_memalign
#ifdef __UCLIBC_HAS_THREADS__
#include <pthread.h>
-extern pthread_mutex_t __malloclock;
-# define LOCK __pthread_mutex_lock(&__malloclock)
-# define UNLOCK __pthread_mutex_unlock(&__malloclock);
+pthread_mutex_t __malloc_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+# define LOCK __pthread_mutex_lock(&__malloc_lock)
+# define UNLOCK __pthread_mutex_unlock(&__malloc_lock);
#else
# define LOCK
# define UNLOCK