--- linux/net/core/sock.c Tue Oct 8 18:05:14 2002 +++ linux/net/core/sock.c Thu Sep 26 12:29:18 2002 @@ -785,7 +785,6 @@ npages = (data_len + (PAGE_SIZE - 1)) >> PAGE_SHIFT; skb->truesize += data_len; - skb_shinfo(skb)->nr_frags = npages; for (i = 0; i < npages; i++) { struct page *page; skb_frag_t *frag; @@ -804,6 +803,9 @@ PAGE_SIZE : data_len); data_len -= PAGE_SIZE; + + /* frag[i] is now initialized */ + skb_shinfo(skb)->nr_frags = i + 1; } /* Full success... */