On Wed, 2015-10-21 at 21:34 +0300, Emmanuel Grumbach wrote:
> +
> +             if (skb->protocol == htons(ETH_P_IP)) {
> +                     ip_hdr(tmp)->id = ip_hdr(skb)->id;

Too late, you already called consume_skb(skb).
So this is a potential use after free.

> +                     be16_add_cpu(&ip_hdr(tmp)->id, i * num_subframes);
> +             }
> +


I would use 

base_id = ip_hdr(skb)->id; // before the consume_skb(skb)

ip_hdr(tmp)->id = htons(base_id + i * num_subframes);


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to