summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorfenner <fenner>2003-04-21 16:59:52 +0000
committerfenner <fenner>2003-04-21 16:59:52 +0000
commit99c03187afaf73b2816aa4047d440efb0e9136c6 (patch)
tree3bb26f3dfd79968ebdc6aa546600256709140edd /util.c
parentad039808e25dcd9f9b6d2e8f2f2113944745e249 (diff)
downloadtcpdump-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.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/util.c b/util.c
index c99bcb55..ad7e3fde 100644
--- a/util.c
+++ b/util.c
@@ -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;
}
/*