All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCHv2 1/2] batctl: fix 4addr parsing in tcpdump
@ 2013-04-02 20:34 Antonio Quartulli
  2013-04-02 20:34 ` [B.A.T.M.A.N.] [PATCHv2 2/2] batctl: tcpdump - print subtype for UNICAST4ADDR packets Antonio Quartulli
  2013-04-03 11:19 ` [B.A.T.M.A.N.] [PATCHv2 1/2] batctl: fix 4addr parsing in tcpdump Marek Lindner
  0 siblings, 2 replies; 4+ messages in thread
From: Antonio Quartulli @ 2013-04-02 20:34 UTC (permalink / raw)
  To: b.a.t.m.a.n

In the UNICAST4ADDR parsing routing a wrong type is used to
parse the batman header, resulting in a wrong data
visualization. Fix this by using the correct data type.

Introduced by 70aefcf8abefd509e5721c6ae228d3854d5e8b16
("batctl: Add minimal unicast 4addr dissector support")

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---

v2:
- removed subtype print format

 tcpdump.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/tcpdump.c b/tcpdump.c
index f357c6d..f69ac6f 100644
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -545,14 +545,14 @@ static void dump_batman_frag(unsigned char *packet_buff, ssize_t buff_len, int r
 static void dump_batman_4addr(unsigned char *packet_buff, ssize_t buff_len, int read_opt, int time_printed)
 {
 	struct ether_header *ether_header;
-	struct batadv_unicast_packet *unicast_4addr_packet;
+	struct batadv_unicast_4addr_packet *unicast_4addr_packet;
 
-	LEN_CHECK((size_t)buff_len - sizeof(struct ether_header), sizeof(struct batadv_unicast_packet), "BAT 4ADDR");
-	LEN_CHECK((size_t)buff_len - sizeof(struct ether_header) - sizeof(struct batadv_unicast_packet),
+	LEN_CHECK((size_t)buff_len - sizeof(struct ether_header), sizeof(struct batadv_unicast_4addr_packet), "BAT 4ADDR");
+	LEN_CHECK((size_t)buff_len - sizeof(struct ether_header) - sizeof(struct batadv_unicast_4addr_packet),
 		sizeof(struct ether_header), "BAT 4ADDR (unpacked)");
 
 	ether_header = (struct ether_header *)packet_buff;
-	unicast_4addr_packet = (struct batadv_unicast_packet *)(packet_buff + sizeof(struct ether_header));
+	unicast_4addr_packet = (struct batadv_unicast_4addr_packet *)(packet_buff + sizeof(struct ether_header));
 
 	if (!time_printed)
 		time_printed = print_time();
@@ -561,11 +561,11 @@ static void dump_batman_4addr(unsigned char *packet_buff, ssize_t buff_len, int
 	       get_name_by_macaddr((struct ether_addr *)ether_header->ether_shost, read_opt));
 
 	printf("%s: 4ADDR, ttvn %d, ttl %hhu, ",
-	       get_name_by_macaddr((struct ether_addr *)unicast_4addr_packet->dest, read_opt),
-	       unicast_4addr_packet->ttvn, unicast_4addr_packet->header.ttl);
+	       get_name_by_macaddr((struct ether_addr *)unicast_4addr_packet->u.dest, read_opt),
+	       unicast_4addr_packet->u.ttvn, unicast_4addr_packet->u.header.ttl);
 
-	parse_eth_hdr(packet_buff + ETH_HLEN + sizeof(struct batadv_unicast_packet),
-		      buff_len - ETH_HLEN - sizeof(struct batadv_unicast_packet),
+	parse_eth_hdr(packet_buff + ETH_HLEN + sizeof(struct batadv_unicast_4addr_packet),
+		      buff_len - ETH_HLEN - sizeof(struct batadv_unicast_4addr_packet),
 		      read_opt, time_printed);
 }
 
-- 
1.8.1.5


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-04-03 11:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-02 20:34 [B.A.T.M.A.N.] [PATCHv2 1/2] batctl: fix 4addr parsing in tcpdump Antonio Quartulli
2013-04-02 20:34 ` [B.A.T.M.A.N.] [PATCHv2 2/2] batctl: tcpdump - print subtype for UNICAST4ADDR packets Antonio Quartulli
2013-04-03 11:20   ` Marek Lindner
2013-04-03 11:19 ` [B.A.T.M.A.N.] [PATCHv2 1/2] batctl: fix 4addr parsing in tcpdump Marek Lindner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.