From 710f3747352fb93a63e5b69b12379da37f5b3fa9 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 3 Nov 2013 17:20:34 +1100 Subject: - (dtucker) [openbsd-compat/setproctitle.c] Handle error case form the 2nd vsnprintf. From eric at openbsd via chl@. --- openbsd-compat/setproctitle.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'openbsd-compat/setproctitle.c') diff --git a/openbsd-compat/setproctitle.c b/openbsd-compat/setproctitle.c index 2965f689e..a69db22a2 100644 --- a/openbsd-compat/setproctitle.c +++ b/openbsd-compat/setproctitle.c @@ -125,6 +125,7 @@ setproctitle(const char *fmt, ...) va_list ap; char buf[1024], ptitle[1024]; size_t len; + int r; extern char *__progname; #if SPT_TYPE == SPT_PSTAT union pstun pst; @@ -137,13 +138,16 @@ setproctitle(const char *fmt, ...) strlcpy(buf, __progname, sizeof(buf)); + r = -1; va_start(ap, fmt); if (fmt != NULL) { len = strlcat(buf, ": ", sizeof(buf)); if (len < sizeof(buf)) - vsnprintf(buf + len, sizeof(buf) - len , fmt, ap); + r = vsnprintf(buf + len, sizeof(buf) - len , fmt, ap); } va_end(ap); + if (r == -1 || (size_t)r >= sizeof(buf) - len) + return; strnvis(ptitle, buf, sizeof(ptitle), VIS_CSTYLE|VIS_NL|VIS_TAB|VIS_OCTAL); -- cgit v1.2.3