]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/fib_frontend.c
[ARM] 4756/1: [AT91] Makefile cleanup
[linux-2.6-omap-h63xx.git] / net / ipv4 / fib_frontend.c
index 732d8f088b13298fdfef8eb1051477c7f6453080..97abf934d1852931d36a18f8027d1597fa66e135 100644 (file)
@@ -804,10 +804,13 @@ static void nl_fib_input(struct sk_buff *skb)
 
        nlh = nlmsg_hdr(skb);
        if (skb->len < NLMSG_SPACE(0) || skb->len < nlh->nlmsg_len ||
-           nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*frn))) {
-               kfree_skb(skb);
+           nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*frn)))
                return;
-       }
+
+       skb = skb_clone(skb, GFP_KERNEL);
+       if (skb == NULL)
+               return;
+       nlh = nlmsg_hdr(skb);
 
        frn = (struct fib_result_nl *) NLMSG_DATA(nlh);
        tb = fib_get_table(frn->tb_id_in);