diff options
author | brian <brian@FreeBSD.org> | 2001-08-20 12:50:21 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2001-08-20 12:50:21 +0000 |
commit | 4e059b7f961ce0c37564d6417157fa695d541bf7 (patch) | |
tree | c1fa3343ede9a1d367c7206b7d1a5e349de54cc1 | |
parent | 3812f018035d8cb50f88381ca3ad9da9a2142b67 (diff) | |
download | FreeBSD-src-4e059b7f961ce0c37564d6417157fa695d541bf7.zip FreeBSD-src-4e059b7f961ce0c37564d6417157fa695d541bf7.tar.gz |
Handle snprintf() returning -1.
MFC after: 2 weeks
-rw-r--r-- | lib/libdevstat/devstat.c | 6 | ||||
-rw-r--r-- | lib/libfetch/ftp.c | 3 | ||||
-rw-r--r-- | libexec/rlogind/rlogind.c | 2 |
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); } |