]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ax25/ax25_in.c
[NET]: Make packet reception network namespace safe
[linux-2.6-omap-h63xx.git] / net / ax25 / ax25_in.c
index 31c59387a6fca0095246054b9fe4188feb56480c..3b7d1720c2eee2c3d652526f74f92094bb4634b4 100644 (file)
@@ -66,7 +66,9 @@ static int ax25_rx_fragment(ax25_cb *ax25, struct sk_buff *skb)
 
                                        /* Copy data from the fragments */
                                        while ((skbo = skb_dequeue(&ax25->frag_queue)) != NULL) {
-                                               memcpy(skb_put(skbn, skbo->len), skbo->data, skbo->len);
+                                               skb_copy_from_linear_data(skbo,
+                                                         skb_put(skbn, skbo->len),
+                                                                         skbo->len);
                                                kfree_skb(skbo);
                                        }
 
@@ -449,6 +451,11 @@ int ax25_kiss_rcv(struct sk_buff *skb, struct net_device *dev,
        skb->sk = NULL;         /* Initially we don't know who it's for */
        skb->destructor = NULL; /* Who initializes this, dammit?! */
 
+       if (dev->nd_net != &init_net) {
+               kfree_skb(skb);
+               return 0;
+       }
+
        if ((*skb->data & 0x0F) != 0) {
                kfree_skb(skb); /* Not a KISS data frame */
                return 0;