X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Futils.c;h=2cc0e9110f9383105e9b9c85333a269c1cb20d44;hb=b311e98b1d4775f7db36b81697ed8996809f3639;hp=3ac1b60926d20014808dcaf708d59f6adb33ee1a;hpb=5e8c3cb256a7e86e3572a82a75d51c6850efdbdc;p=ppp.git diff --git a/pppd/utils.c b/pppd/utils.c index 3ac1b60..2cc0e91 100644 --- a/pppd/utils.c +++ b/pppd/utils.c @@ -59,7 +59,6 @@ #include "fsm.h" #include "lcp.h" -static const char rcsid[] = RCSID; #if defined(SUNOS4) extern char *strerror(); @@ -301,9 +300,10 @@ vslprintf(buf, buflen, fmt, args) if (fillch == '0' && prec >= 0) { n = prec; } else { - n = strlen((char *)p); - if (prec >= 0 && n > prec) - n = prec; + if (prec == -1) + n = strlen((char *)p); + else + n = strnlen((char *)p, prec); } while (n > 0 && buflen > 0) { c = *p++; @@ -386,9 +386,10 @@ vslprintf(buf, buflen, fmt, args) } len = num + sizeof(num) - 1 - str; } else { - len = strlen(str); - if (prec >= 0 && len > prec) - len = prec; + if (prec == -1) + len = strlen(str); + else + len = strnlen(str, prec); } if (width > 0) { if (width > buflen)