diff options
author | Moritz Jodeit <moritz@cvs.openbsd.org> | 2005-03-08 15:38:47 +0000 |
---|---|---|
committer | Moritz Jodeit <moritz@cvs.openbsd.org> | 2005-03-08 15:38:47 +0000 |
commit | 31041a4c8166889360cf76d3796547621f3dd5a6 (patch) | |
tree | e2d39c4f6f8887ce551fd9b0865ae1cc262378dd /lib | |
parent | e61502ef7e72cf1c96bf3191b7cb52438f408885 (diff) |
handle snprintf() returning -1.
ok cloder@ henning@ hshoexer@
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/gen/setproctitle.c | 6 |
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); |