summaryrefslogtreecommitdiff
path: root/print-hsrp.c
diff options
context:
space:
mode:
authorguy <guy>2005-05-06 07:56:51 +0000
committerguy <guy>2005-05-06 07:56:51 +0000
commit6191f36146f5d286304e9b6e893477fe509d83ab (patch)
tree459b721bab4a8aa77ac56d879f90aa59712321e1 /print-hsrp.c
parentb2957ddee9bfd6a6bfcd4db7015e706755cecd0e (diff)
downloadtcpdump-6191f36146f5d286304e9b6e893477fe509d83ab.tar.gz
Add an "fn_printzp()" routine for printing null-padded strings (strings
with a maximum length, where a string shorter than that length is padded with NULs), as "fn_print()" won't handle the maximum length *and* the snapshot length and "fn_printn()" won't stop on a null string. Use it where appropriate. Always pass "snapend" to "fn_print()" and "fn_printn()" if they're passed a pointer into the packet data; only pass NULL if they're being handed a pointer into a buffer that's not part of the packet data. Always check the return value of "fn_print()", "fn_printn()", and "fn_printzp()" if they're passed "snapend", and do the appropriate string termination and "packet truncated" indication if they return 1.
Diffstat (limited to 'print-hsrp.c')
-rw-r--r--print-hsrp.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/print-hsrp.c b/print-hsrp.c
index fe49538e..06304fd5 100644
--- a/print-hsrp.c
+++ b/print-hsrp.c
@@ -31,7 +31,7 @@
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-hsrp.c,v 1.9 2003-11-16 09:36:22 guy Exp $";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-hsrp.c,v 1.10 2005-05-06 07:56:52 guy Exp $";
#endif
#ifdef HAVE_CONFIG_H
@@ -127,7 +127,11 @@ hsrp_print(register const u_int8_t *bp, register u_int len)
relts_print(hp->hsrp_holdtime);
printf(" priority=%d", hp->hsrp_priority);
printf(" auth=\"");
- fn_printn(hp->hsrp_authdata, sizeof(hp->hsrp_authdata), NULL);
+ if (fn_printn(hp->hsrp_authdata, sizeof(hp->hsrp_authdata),
+ snapend)) {
+ printf("\"");
+ goto trunc;
+ }
printf("\"");
}
return;