diff options
author | 1999-02-01 07:58:30 +0000 | |
---|---|---|
committer | 1999-02-01 07:58:30 +0000 | |
commit | c25cfa1d469260b979ae25f900ca36069f0dcc1e (patch) | |
tree | 66d1f3241e28a9b6407db5e130956d53bb353a7d /lib/libc/stdlib/malloc.c | |
parent | remove PASSTHRU (diff) | |
download | wireguard-openbsd-c25cfa1d469260b979ae25f900ca36069f0dcc1e.tar.xz wireguard-openbsd-c25cfa1d469260b979ae25f900ca36069f0dcc1e.zip |
malloc can't use write() if it fails very early, so use the unwrapped syscall _thread_sys_write() if we are threaded
Diffstat (limited to 'lib/libc/stdlib/malloc.c')
-rw-r--r-- | lib/libc/stdlib/malloc.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c index ecbf93dc489..55d00e50722 100644 --- a/lib/libc/stdlib/malloc.c +++ b/lib/libc/stdlib/malloc.c @@ -8,7 +8,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: malloc.c,v 1.33 1998/11/20 11:18:50 d Exp $"; +static char rcsid[] = "$OpenBSD: malloc.c,v 1.34 1999/02/01 07:58:30 d Exp $"; #endif /* LIBC_SCCS and not lint */ /* @@ -102,6 +102,15 @@ static char rcsid[] = "$OpenBSD: malloc.c,v 1.33 1998/11/20 11:18:50 d Exp $"; # define THREAD_LOCK() if (__isthreaded) _SPINLOCK(&malloc_lock) # define THREAD_UNLOCK() if (__isthreaded) _SPINUNLOCK(&malloc_lock) # define THREAD_LOCK_INIT() + /* + * Malloc can't use the wrapped write() if it fails very early, so + * we use the unwrapped syscall _thread_sys_write() + */ +# define write _thread_sys_write + int write __P((int, const void *, size_t)); +# undef malloc +# undef realloc +# undef free # endif #else /* no threads */ |