diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libc/stdlib/malloc.c | 32 | 
1 files changed, 18 insertions, 14 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 446a1ca254..2cd443191d 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c  | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: malloc.c,v 1.152 2014/04/03 16:18:11 schwarze Exp $ */ | 1 | /* $OpenBSD: malloc.c,v 1.153 2014/04/14 10:29:41 otto Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * Copyright (c) 2008, 2010, 2011 Otto Moerbeek <otto@drijf.net> | 3 | * Copyright (c) 2008, 2010, 2011 Otto Moerbeek <otto@drijf.net> | 
| 4 | * Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org> | 4 | * Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org> | 
| @@ -235,28 +235,32 @@ static void | |||
| 235 | wrterror(char *msg, void *p) | 235 | wrterror(char *msg, void *p) | 
| 236 | { | 236 | { | 
| 237 | char *q = " error: "; | 237 | char *q = " error: "; | 
| 238 | struct iovec iov[6]; | 238 | struct iovec iov[7]; | 
| 239 | char pidbuf[20]; | ||
| 239 | char buf[20]; | 240 | char buf[20]; | 
| 240 | int saved_errno = errno; | 241 | int saved_errno = errno; | 
| 241 | 242 | ||
| 242 | iov[0].iov_base = __progname; | 243 | iov[0].iov_base = __progname; | 
| 243 | iov[0].iov_len = strlen(__progname); | 244 | iov[0].iov_len = strlen(__progname); | 
| 244 | iov[1].iov_base = malloc_func; | 245 | iov[1].iov_base = pidbuf; | 
| 245 | iov[1].iov_len = strlen(malloc_func); | 246 | snprintf(pidbuf, sizeof(pidbuf), "(%d)", getpid()); | 
| 246 | iov[2].iov_base = q; | 247 | iov[1].iov_len = strlen(pidbuf); | 
| 247 | iov[2].iov_len = strlen(q); | 248 | iov[2].iov_base = malloc_func; | 
| 248 | iov[3].iov_base = msg; | 249 | iov[2].iov_len = strlen(malloc_func); | 
| 249 | iov[3].iov_len = strlen(msg); | 250 | iov[3].iov_base = q; | 
| 250 | iov[4].iov_base = buf; | 251 | iov[3].iov_len = strlen(q); | 
| 252 | iov[4].iov_base = msg; | ||
| 253 | iov[4].iov_len = strlen(msg); | ||
| 254 | iov[5].iov_base = buf; | ||
| 251 | if (p == NULL) | 255 | if (p == NULL) | 
| 252 | iov[4].iov_len = 0; | 256 | iov[5].iov_len = 0; | 
| 253 | else { | 257 | else { | 
| 254 | snprintf(buf, sizeof(buf), " %p", p); | 258 | snprintf(buf, sizeof(buf), " %p", p); | 
| 255 | iov[4].iov_len = strlen(buf); | 259 | iov[5].iov_len = strlen(buf); | 
| 256 | } | 260 | } | 
| 257 | iov[5].iov_base = "\n"; | 261 | iov[6].iov_base = "\n"; | 
| 258 | iov[5].iov_len = 1; | 262 | iov[6].iov_len = 1; | 
| 259 | writev(STDERR_FILENO, iov, 6); | 263 | writev(STDERR_FILENO, iov, 7); | 
| 260 | 264 | ||
| 261 | #ifdef MALLOC_STATS | 265 | #ifdef MALLOC_STATS | 
| 262 | if (mopts.malloc_stats) | 266 | if (mopts.malloc_stats) | 
