diff options
| author | hannes <hannes> | 2007-03-02 09:20:27 +0000 |
|---|---|---|
| committer | hannes <hannes> | 2007-03-02 09:20:27 +0000 |
| commit | 37b49c04383b853118952eda84d8ba314b526328 (patch) | |
| tree | 0ff0c098c4aa7cb0589f3092085618802b1843c7 | |
| parent | 419143cdbb9391434a7bbbd0d7f9318addc4b6d1 (diff) | |
| download | tcpdump-37b49c04383b853118952eda84d8ba314b526328.tar.gz | |
bugfix: the Multi-topology header is just at the beginning of the TLV and not before every prefix
| -rw-r--r-- | print-isoclns.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/print-isoclns.c b/print-isoclns.c index 93f4a618..f6260b0c 100644 --- a/print-isoclns.c +++ b/print-isoclns.c @@ -26,7 +26,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-isoclns.c,v 1.133.2.24 2007-02-22 11:31:05 hannes Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-isoclns.c,v 1.133.2.25 2007-03-02 09:20:27 hannes Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -2247,13 +2247,14 @@ static int isis_print (const u_int8_t *p, u_int length) break; case ISIS_TLV_MT_IP_REACH: - while (tmp>0) { - mt_len = isis_print_mtid(tptr, "\n\t "); - if (mt_len == 0) /* did something go wrong ? */ - goto trunctlv; - tptr+=mt_len; - tmp-=mt_len; + mt_len = isis_print_mtid(tptr, "\n\t "); + if (mt_len == 0) { /* did something go wrong ? */ + goto trunctlv; + } + tptr+=mt_len; + tmp-=mt_len; + while (tmp>0) { ext_ip_len = isis_print_extd_ip_reach(tptr, "\n\t ", IPV4); if (ext_ip_len == 0) /* did something go wrong ? */ goto trunctlv; @@ -2274,13 +2275,14 @@ static int isis_print (const u_int8_t *p, u_int length) break; case ISIS_TLV_MT_IP6_REACH: - while (tmp>0) { - mt_len = isis_print_mtid(tptr, "\n\t "); - if (mt_len == 0) /* did something go wrong ? */ - goto trunctlv; - tptr+=mt_len; - tmp-=mt_len; + mt_len = isis_print_mtid(tptr, "\n\t "); + if (mt_len == 0) { /* did something go wrong ? */ + goto trunctlv; + } + tptr+=mt_len; + tmp-=mt_len; + while (tmp>0) { ext_ip_len = isis_print_extd_ip_reach(tptr, "\n\t ", IPV6); if (ext_ip_len == 0) /* did something go wrong ? */ goto trunctlv; |
