summaryrefslogtreecommitdiff
path: root/print-vrrp.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-vrrp.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-vrrp.c')
-rw-r--r--print-vrrp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/print-vrrp.c b/print-vrrp.c
index 12fbe7b3..899542da 100644
--- a/print-vrrp.c
+++ b/print-vrrp.c
@@ -25,7 +25,7 @@
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-vrrp.c,v 1.9 2003-11-16 09:36:41 guy Exp $";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-vrrp.c,v 1.10 2005-05-06 07:56:54 guy Exp $";
#endif
#ifdef HAVE_CONFIG_H
@@ -128,7 +128,10 @@ vrrp_print(register const u_char *bp, register u_int len, int ttl)
if (auth_type == VRRP_AUTH_SIMPLE) { /* simple text password */
TCHECK(bp[7]);
printf(" auth \"");
- fn_printn(bp, 8, NULL);
+ if (fn_printn(bp, 8, snapend)) {
+ printf("\"");
+ goto trunc;
+ }
printf("\"");
}
}