]> git.hungrycats.org Git - linux/commitdiff
[AF_PACKET]: Drop SKB route of packets queued to userspace.
authorStephen Hemminger <shemminger@osdl.org>
Wed, 24 Dec 2003 11:14:14 +0000 (03:14 -0800)
committerDavid S. Miller <davem@nuts.ninka.net>
Wed, 24 Dec 2003 11:14:14 +0000 (03:14 -0800)
net/packet/af_packet.c

index f048d6dc6a269f78931de4d4375b674789763d99..146159e0c33a5dceb0f90907a82bab687abbd138 100644 (file)
@@ -246,6 +246,10 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev,  struct
        if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)
                goto oom;
 
+       /* drop any routing info */
+       dst_release(skb->dst);
+       skb->dst = NULL;
+
        spkt = (struct sockaddr_pkt*)skb->cb;
 
        skb_push(skb, skb->data-skb->mac.raw);
@@ -486,6 +490,9 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,  struct packe
 
        skb_set_owner_r(skb, sk);
        skb->dev = NULL;
+       dst_release(skb->dst);
+       skb->dst = NULL;
+
        spin_lock(&sk->sk_receive_queue.lock);
        po->stats.tp_packets++;
        __skb_queue_tail(&sk->sk_receive_queue, skb);