Преглед изворни кода

[AX.25]: Fix packet socket crash

Since changeset 98a82febb6340466824c3a453738d4fbd05db81a AX.25 is passing
received IP and ARP packets to the stack through netif_rx() but we don't
set the skb->mac.raw to right value which may result in a crash with
applications that use a packet socket.

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ralf Baechle пре 19 година
родитељ
комит
3a867b36c3
2 измењених фајлова са 2 додато и 2 уклоњено
  1. 1 1
      net/ax25/ax25_in.c
  2. 1 1
      net/netrom/nr_dev.c

+ 1 - 1
net/ax25/ax25_in.c

@@ -123,7 +123,7 @@ int ax25_rx_iframe(ax25_cb *ax25, struct sk_buff *skb)
 		}
 		}
 
 
 		skb_pull(skb, 1);	/* Remove PID */
 		skb_pull(skb, 1);	/* Remove PID */
-		skb->h.raw    = skb->data;
+		skb->mac.raw  = skb->nh.raw;
 		skb->nh.raw   = skb->data;
 		skb->nh.raw   = skb->data;
 		skb->dev      = ax25->ax25_dev->dev;
 		skb->dev      = ax25->ax25_dev->dev;
 		skb->pkt_type = PACKET_HOST;
 		skb->pkt_type = PACKET_HOST;

+ 1 - 1
net/netrom/nr_dev.c

@@ -58,7 +58,7 @@ int nr_rx_ip(struct sk_buff *skb, struct net_device *dev)
 
 
 	/* Spoof incoming device */
 	/* Spoof incoming device */
 	skb->dev      = dev;
 	skb->dev      = dev;
-	skb->h.raw    = skb->data;
+	skb->mac.raw  = skb->nh.raw;
 	skb->nh.raw   = skb->data;
 	skb->nh.raw   = skb->data;
 	skb->pkt_type = PACKET_HOST;
 	skb->pkt_type = PACKET_HOST;