diff options
author | guy <guy> | 2005-05-06 07:56:51 +0000 |
---|---|---|
committer | guy <guy> | 2005-05-06 07:56:51 +0000 |
commit | 6191f36146f5d286304e9b6e893477fe509d83ab (patch) | |
tree | 459b721bab4a8aa77ac56d879f90aa59712321e1 /print-hsrp.c | |
parent | b2957ddee9bfd6a6bfcd4db7015e706755cecd0e (diff) | |
download | tcpdump-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.c | 8 |
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; |