diff options
author | otto <> | 2014-04-14 10:29:41 +0000 |
---|---|---|
committer | otto <> | 2014-04-14 10:29:41 +0000 |
commit | 6f7ab0907084a880d31c1432d8ea24be0eca0443 (patch) | |
tree | 7fda7aabf3d826b984ec3e7cb49f648eacb65dc5 /src | |
parent | 0f3015e1c64e2b9ba3774397257f15287f9ff442 (diff) | |
download | openbsd-6f7ab0907084a880d31c1432d8ea24be0eca0443.tar.gz openbsd-6f7ab0907084a880d31c1432d8ea24be0eca0443.tar.bz2 openbsd-6f7ab0907084a880d31c1432d8ea24be0eca0443.zip |
print pid in error messages; ok reyk@
Diffstat (limited to 'src')
-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) |