Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
commit a36f66e669ecfbb8f701d15ce317cdf2e39e092a Author: Simon Wunderlich simon.wunderlich@s2003.tu-chemnitz.de Date: Thu Apr 25 10:37:22 2013 +0200
batman-adv: add build check macros for packet member offset
Since we removed the __packed from most of the packets, we should make sure that the offset generated by the compiler are correct for sent/received data.
Signed-off-by: Simon Wunderlich siwu@hrz.tu-chemnitz.de Signed-off-by: Marek Lindner lindner_marek@yahoo.de
a36f66e669ecfbb8f701d15ce317cdf2e39e092a main.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/main.c b/main.c index 2a14722..6b2cfb5 100644 --- a/main.c +++ b/main.c @@ -328,6 +328,14 @@ static void batadv_recv_handler_init(void) for (i = 0; i < ARRAY_SIZE(batadv_rx_handler); i++) batadv_rx_handler[i] = batadv_recv_unhandled_packet;
+ /* compile time checks for struct member offsets */ + BUILD_BUG_ON(offsetof(struct batadv_unicast_4addr_packet, src) != 10); + BUILD_BUG_ON(offsetof(struct batadv_unicast_packet, dest) != 4); + BUILD_BUG_ON(offsetof(struct batadv_unicast_frag_packet, dest) != 4); + BUILD_BUG_ON(offsetof(struct batadv_unicast_tvlv_packet, dst) != 4); + BUILD_BUG_ON(offsetof(struct batadv_icmp_packet, dst) != 4); + BUILD_BUG_ON(offsetof(struct batadv_icmp_packet_rr, dst) != 4); + /* batman icmp packet */ batadv_rx_handler[BATADV_ICMP] = batadv_recv_icmp_packet; /* unicast with 4 addresses packet */