summaryrefslogtreecommitdiff
path: root/lib/libc/stdlib
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2017-02-15 12:31:58 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2017-02-15 12:31:58 +0000
commit7c04a0aeb1a1bf39b62d59c1cf89f9a090f174bd (patch)
tree575d014c60abe658bad9238d9ecbb862a89c43be /lib/libc/stdlib
parent95f2e88fc631e3e19f97b0fa80d982652f0c84e9 (diff)
Add a NULL test to wrterror() to avoid a NULL deref when called from a
free() error path. ok otto@
Diffstat (limited to 'lib/libc/stdlib')
-rw-r--r--lib/libc/stdlib/malloc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index adbb1668804..0b071e67438 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: malloc.c,v 1.214 2017/02/02 10:35:34 otto Exp $ */
+/* $OpenBSD: malloc.c,v 1.215 2017/02/15 12:31:57 jsg Exp $ */
/*
* Copyright (c) 2008, 2010, 2011, 2016 Otto Moerbeek <otto@drijf.net>
* Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org>
@@ -278,7 +278,7 @@ wrterror(struct dir_info *d, char *msg, ...)
iov[0].iov_base = pidbuf;
snprintf(pidbuf, sizeof(pidbuf), "%s(%d) in %s(): ", __progname,
- getpid(), d->func ? d->func : "unknown");
+ getpid(), (d != NULL && d->func) ? d->func : "unknown");
iov[0].iov_len = strlen(pidbuf);
iov[1].iov_base = buf;
va_start(ap, msg);