summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2001-08-20 12:50:21 +0000
committerbrian <brian@FreeBSD.org>2001-08-20 12:50:21 +0000
commit4e059b7f961ce0c37564d6417157fa695d541bf7 (patch)
treec1fa3343ede9a1d367c7206b7d1a5e349de54cc1
parent3812f018035d8cb50f88381ca3ad9da9a2142b67 (diff)
downloadFreeBSD-src-4e059b7f961ce0c37564d6417157fa695d541bf7.zip
FreeBSD-src-4e059b7f961ce0c37564d6417157fa695d541bf7.tar.gz
Handle snprintf() returning -1.
MFC after: 2 weeks
-rw-r--r--lib/libdevstat/devstat.c6
-rw-r--r--lib/libfetch/ftp.c3
-rw-r--r--libexec/rlogind/rlogind.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/lib/libdevstat/devstat.c b/lib/libdevstat/devstat.c
index 7db6b99..86694ea 100644
--- a/lib/libdevstat/devstat.c
+++ b/lib/libdevstat/devstat.c
@@ -269,7 +269,8 @@ devstat_checkversion(kvm_t *kd)
errlen = snprintf(tmpstr, sizeof(tmpstr), "\n");
strncat(devstat_errbuf, tmpstr,
DEVSTAT_ERRBUF_SIZE - buflen - 1);
- buflen += errlen;
+ if (errlen > 0)
+ buflen += errlen;
}
errlen = snprintf(tmpstr, sizeof(tmpstr),
@@ -281,7 +282,8 @@ devstat_checkversion(kvm_t *kd)
if (version == -1) {
strncat(devstat_errbuf, tmpstr,
DEVSTAT_ERRBUF_SIZE - buflen - 1);
- buflen += errlen;
+ if (errlen > 0)
+ buflen += errlen;
} else {
strncpy(devstat_errbuf, tmpstr, DEVSTAT_ERRBUF_SIZE);
devstat_errbuf[DEVSTAT_ERRBUF_SIZE - 1] = '\0';
diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c
index f1ffbf2..1274019 100644
--- a/lib/libfetch/ftp.c
+++ b/lib/libfetch/ftp.c
@@ -744,7 +744,8 @@ _ftp_authenticate(int cd, struct url *url, struct url *purl)
if (!pwd || !*pwd) {
if ((logname = getlogin()) == 0)
logname = FTP_ANONYMOUS_USER;
- len = snprintf(pbuf, MAXLOGNAME + 1, "%s@", logname);
+ if ((len = snprintf(pbuf, MAXLOGNAME + 1, "%s@", logname)) == -1)
+ len = 0;
gethostname(pbuf + len, sizeof pbuf - len);
pwd = pbuf;
}
diff --git a/libexec/rlogind/rlogind.c b/libexec/rlogind/rlogind.c
index f0df9df..2719d09 100644
--- a/libexec/rlogind/rlogind.c
+++ b/libexec/rlogind/rlogind.c
@@ -555,6 +555,8 @@ fatal(f, msg, syserr)
msg, strerror(errno));
else
len = snprintf(bp, sizeof(buf), "rlogind: %s.\r\n", msg);
+ if (len == -1)
+ len = 0;
(void) write(f, buf, bp + len - buf);
exit(1);
}
OpenPOWER on IntegriCloud