ipv6: Check ip6_find_1stfragopt() return value properly.
[pandora-kernel.git] / net / ipv6 / udp.c
index 8157ae0..5f0d519 100644 (file)
@@ -1316,6 +1316,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb, u32 features)
        u8 frag_hdr_sz = sizeof(struct frag_hdr);
        int offset;
        __wsum csum;
+       int err;
 
        mss = skb_shinfo(skb)->gso_size;
        if (unlikely(skb->len <= mss))
@@ -1352,9 +1353,10 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb, u32 features)
        /* Find the unfragmentable header and shift it left by frag_hdr_sz
         * bytes to insert fragment header.
         */
-       unfrag_ip6hlen = ip6_find_1stfragopt(skb, &prevhdr);
-       if (unfrag_ip6hlen < 0)
-               return ERR_PTR(unfrag_ip6hlen);
+       err = ip6_find_1stfragopt(skb, &prevhdr);
+       if (err < 0)
+               return ERR_PTR(err);
+       unfrag_ip6hlen = err;
        nexthdr = *prevhdr;
        *prevhdr = NEXTHDR_FRAGMENT;
        unfrag_len = skb_network_header(skb) - skb_mac_header(skb) +