- (dtucker) [openbsd-compat/setproctitle.c] Handle error case form the 2nd

vsnprintf.  From eric at openbsd via chl@.
This commit is contained in:
Darren Tucker 2013-11-03 17:20:34 +11:00
Родитель d527704523
Коммит 710f374735
2 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -2,6 +2,8 @@
- (dtucker) [openbsd-compat/bsd-misc.c] Include time.h for nanosleep.
From OpenSMTPD where it prevents "implicit declaration" warnings (it's
a no-op in OpenSSH). From chl at openbsd.
- (dtucker) [openbsd-compat/setproctitle.c] Handle error case form the 2nd
vsnprintf. From eric at openbsd via chl@.
20131030
- (djm) OpenBSD CVS Sync

Просмотреть файл

@ -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);