summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMoritz Jodeit <moritz@cvs.openbsd.org>2005-03-08 15:38:47 +0000
committerMoritz Jodeit <moritz@cvs.openbsd.org>2005-03-08 15:38:47 +0000
commit31041a4c8166889360cf76d3796547621f3dd5a6 (patch)
treee2d39c4f6f8887ce551fd9b0865ae1cc262378dd /lib
parente61502ef7e72cf1c96bf3191b7cb52438f408885 (diff)
handle snprintf() returning -1.
ok cloder@ henning@ hshoexer@
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/gen/setproctitle.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libc/gen/setproctitle.c b/lib/libc/gen/setproctitle.c
index fd23dbdab3e..21eddd13084 100644
--- a/lib/libc/gen/setproctitle.c
+++ b/lib/libc/gen/setproctitle.c
@@ -30,7 +30,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$OpenBSD: setproctitle.c,v 1.9 2002/02/19 19:39:36 millert Exp $";
+static char rcsid[] = "$OpenBSD: setproctitle.c,v 1.10 2005/03/08 15:38:46 moritz Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/param.h>
@@ -54,13 +54,15 @@ setproctitle(const char *fmt, ...)
va_list ap;
static char buf[MAX_PROCTITLE], *bufp = buf;
- size_t used;
+ int used;
va_start(ap, fmt);
if (fmt != NULL) {
used = snprintf(buf, MAX_PROCTITLE, "%s: ", __progname);
if (used >= MAX_PROCTITLE)
used = MAX_PROCTITLE - 1;
+ else if (used < 0)
+ used = 0;
(void)vsnprintf(buf + used, MAX_PROCTITLE - used, fmt, ap);
} else
(void)snprintf(buf, MAX_PROCTITLE, "%s", __progname);