[2/2] batman-adv: properly align roaming tvlv container

Message ID 1369520121-5998-2-git-send-email-lindner_marek@yahoo.de (mailing list archive)
State Accepted, archived
Commit 05a7111852ae77cb489808831ddacd6174800ea7
Headers

Commit Message

Marek Lindner May 25, 2013, 10:15 p.m. UTC
  4bytes long members must start at an address multiple of 4
in order to avoid unaligned memory access.

Introduced by 3de4e64df0f1326db7cc0ef25f5af8522850252d
"batman-adv: tvlv - convert roaming adv packet to use
tvlv unicast packets"

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 packet.h            |    4 +++-
 translation-table.c |    1 +
 2 files changed, 4 insertions(+), 1 deletion(-)
  

Comments

Marek Lindner May 28, 2013, 7:02 a.m. UTC | #1
On Sunday, May 26, 2013 06:15:21 Marek Lindner wrote:
> 4bytes long members must start at an address multiple of 4
> in order to avoid unaligned memory access.
> 
> Introduced by 3de4e64df0f1326db7cc0ef25f5af8522850252d
> "batman-adv: tvlv - convert roaming adv packet to use
> tvlv unicast packets"
> 
> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
> ---
>  packet.h            |    4 +++-
>  translation-table.c |    1 +
>  2 files changed, 4 insertions(+), 1 deletion(-)

Applied in revision 05a7111.

Regards,
Marek
  

Patch

diff --git a/packet.h b/packet.h
index 840d73d..22494f7 100644
--- a/packet.h
+++ b/packet.h
@@ -389,9 +389,11 @@  struct batadv_tvlv_tt_change {
 /**
  * struct batadv_tvlv_roam_adv - roaming advertisement
  * @client: mac address of roaming client
+ * @reserved: field reserved for future use
  */
 struct batadv_tvlv_roam_adv {
-	uint8_t client[ETH_ALEN];
+	uint8_t  client[ETH_ALEN];
+	uint16_t reserved;
 };
 
 #endif /* _NET_BATMAN_ADV_PACKET_H_ */
diff --git a/translation-table.c b/translation-table.c
index 44e7789..d53c212 100644
--- a/translation-table.c
+++ b/translation-table.c
@@ -2208,6 +2208,7 @@  static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_TX);
 
 	memcpy(tvlv_roam.client, client, sizeof(tvlv_roam.client));
+	tvlv_roam.reserved = 0;
 
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
 				 orig_node->orig, BATADV_TVLV_ROAM, 1,