[linux-next] LinuxNextTracking branch, master, updated. next-20121101

batman at open-mesh.org batman at open-mesh.org
Fri Nov 2 00:17:18 CET 2012


The following commit has been merged in the master branch:
commit d48ddb83666c32f14436106b8c9319f8ab24cf0a
Author: Antonio Quartulli <ordex at autistici.org>
Date:   Tue Jul 31 17:19:15 2012 +0200

    batman-adv: use check_unicast_packet() in recv_roam_adv()
    
    To avoid code duplication and to simplify further changes,
    check_unicast_packet() is now used in recv_roam_adv() to check for not
    well formed packets and so discard them.
    
    Signed-off-by: Antonio Quartulli <ordex at autistici.org>

diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 376b4cc..8bdafc8 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -687,21 +687,8 @@ int batadv_recv_roam_adv(struct sk_buff *skb, struct batadv_hard_iface *recv_if)
 	struct batadv_priv *bat_priv = netdev_priv(recv_if->soft_iface);
 	struct batadv_roam_adv_packet *roam_adv_packet;
 	struct batadv_orig_node *orig_node;
-	struct ethhdr *ethhdr;
-
-	/* drop packet if it has not necessary minimum size */
-	if (unlikely(!pskb_may_pull(skb,
-				    sizeof(struct batadv_roam_adv_packet))))
-		goto out;
-
-	ethhdr = (struct ethhdr *)skb_mac_header(skb);
 
-	/* packet with unicast indication but broadcast recipient */
-	if (is_broadcast_ether_addr(ethhdr->h_dest))
-		goto out;
-
-	/* packet with broadcast sender address */
-	if (is_broadcast_ether_addr(ethhdr->h_source))
+	if (batadv_check_unicast_packet(skb, sizeof(*roam_adv_packet)) < 0)
 		goto out;
 
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_RX);

-- 
LinuxNextTracking


More information about the linux-merge mailing list