diff --git a/lib/libdevstat/devstat.c b/lib/libdevstat/devstat.c index 7db6b9986b42..86694ea4e2a0 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 f1ffbf2dda0a..127401920526 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 f0df9dfd099c..2719d0962ee5 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); }