summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorotto <>2014-04-14 10:29:41 +0000
committerotto <>2014-04-14 10:29:41 +0000
commit6f7ab0907084a880d31c1432d8ea24be0eca0443 (patch)
tree7fda7aabf3d826b984ec3e7cb49f648eacb65dc5 /src
parent0f3015e1c64e2b9ba3774397257f15287f9ff442 (diff)
downloadopenbsd-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.c32
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
235wrterror(char *msg, void *p) 235wrterror(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)