diff options
author | fenner <fenner> | 2003-04-21 16:59:52 +0000 |
---|---|---|
committer | fenner <fenner> | 2003-04-21 16:59:52 +0000 |
commit | 99c03187afaf73b2816aa4047d440efb0e9136c6 (patch) | |
tree | 3bb26f3dfd79968ebdc6aa546600256709140edd /util.c | |
parent | ad039808e25dcd9f9b6d2e8f2f2113944745e249 (diff) | |
download | tcpdump-99c03187afaf73b2816aa4047d440efb0e9136c6.tar.gz |
Fix fencepost error in fn_printn() which would return a truncation
indication if the last byte of the counted string was the last
byte captured.
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 13 |
1 files changed, 4 insertions, 9 deletions
@@ -21,7 +21,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/util.c,v 1.84 2003-03-04 08:53:26 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/util.c,v 1.85 2003-04-21 16:59:52 fenner Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -85,15 +85,10 @@ int fn_printn(register const u_char *s, register u_int n, register const u_char *ep) { - register int ret; register u_char c; - ret = 1; /* assume truncated */ - while (ep == NULL || s < ep) { - if (n-- <= 0) { - ret = 0; - break; - } + while (n > 0 && (ep == NULL || s < ep)) { + n--; c = *s++; if (!isascii(c)) { c = toascii(c); @@ -106,7 +101,7 @@ fn_printn(register const u_char *s, register u_int n, } putchar(c); } - return(ret); + return (n == 0) ? 0 : 1; } /* |