summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Eckelmann <sven@open-mesh.com>2014-09-30 16:39:37 +0200
committerMichael Mann <mmann78@netscape.net>2014-11-08 00:20:07 +0000
commit48885cc1bcbfdf909918d0927df34fee57e13f39 (patch)
tree0e6848e84618abde41940f0225d8b4522baa8ca9
parent3428e809ddb2d5f673a539516711f61a36eb0ffc (diff)
downloadwireshark-48885cc1bcbfdf909918d0927df34fee57e13f39.tar.gz
batadv: Add missing padding to batadv_unicast_4addr_v14
The already frozen packet format of batman-adv for Linux 3.5 was rejected by David S. Miller. The 4addr format v14 was therefore changed after the freeze and published in his final form in Linux 3.8. Change-Id: I519476c4c6d62b403e197fae6a853d9bbe61f9bc Signed-off-by: Sven Eckelmann <sven@open-mesh.com> Signed-off-by: Simon Wunderlich <simon@open-mesh.com> Reviewed-on: https://code.wireshark.org/review/5174 Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/dissectors/packet-batadv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/epan/dissectors/packet-batadv.c b/epan/dissectors/packet-batadv.c
index 4cd32d5d89..43515e0707 100644
--- a/epan/dissectors/packet-batadv.c
+++ b/epan/dissectors/packet-batadv.c
@@ -214,8 +214,9 @@ struct unicast_4addr_packet_v14 {
address dest;
address src;
guint8 subtype;
+ guint8 reserved;
};
-#define UNICAST_4ADDR_PACKET_V14_SIZE 17
+#define UNICAST_4ADDR_PACKET_V14_SIZE 18
struct unicast_frag_packet_v12 {
guint8 packet_type;
@@ -2152,6 +2153,7 @@ static void dissect_batadv_unicast_4addr_v14(tvbuff_t *tvb, packet_info *pinfo,
src_addr = tvb_get_ptr(tvb, 10, 6);
SET_ADDRESS(&unicast_4addr_packeth->src, AT_ETHER, 6, src_addr);
unicast_4addr_packeth->subtype = tvb_get_guint8(tvb, 16);
+ unicast_4addr_packeth->reserved = tvb_get_guint8(tvb, 17);
/* Set info column */
col_add_fstr(pinfo->cinfo, COL_INFO, "%s",
@@ -2194,6 +2196,9 @@ static void dissect_batadv_unicast_4addr_v14(tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item(batadv_unicast_4addr_tree, hf_batadv_unicast_4addr_subtype, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
+ /* Skip 1 byte of padding. */
+ offset += 1;
+
SET_ADDRESS(&pinfo->dl_dst, AT_ETHER, 6, dest_addr);
SET_ADDRESS(&pinfo->dst, AT_ETHER, 6, dest_addr);
SET_ADDRESS(&pinfo->dl_src, AT_ETHER, 6, src_addr);