Index: v2.6.8/net/ipv4/ip_input.c =================================================================== --- v2.6.8.orig/net/ipv4/ip_input.c +++ v2.6.8/net/ipv4/ip_input.c @@ -177,6 +177,13 @@ int ip_call_ra_chain(struct sk_buff *skb read_unlock(&ip_ra_lock); return 1; } + /* When ip_conntrack gets unloaded, we may be + * left with fragment chains where the first + * fragment has skb->dst = NULL. */ + if (skb->dst == NULL) { + kfree_skb(skb); + return 1; + } } if (last) { struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); @@ -277,6 +284,13 @@ int ip_local_deliver(struct sk_buff *skb skb = ip_defrag(skb); if (!skb) return 0; + /* When ip_conntrack gets unloaded, we may be + * left with fragment chains where the first + * fragment has skb->dst = NULL. */ + if (skb->dst == NULL) { + kfree_skb(skb); + return 0; + } } return NF_HOOK(PF_INET, NF_IP_LOCAL_IN, skb, skb->dev, NULL,