diff -u -r1.1.1.1 ip_queue.c --- a/net/ipv4/netfilter/ip_queue.c 4 Aug 2004 15:14:39 -0000 1.1.1.1 +++ b/net/ipv4/netfilter/ip_queue.c 6 Aug 2004 16:38:11 -0000 @@ -205,8 +205,8 @@ break; case IPQ_COPY_PACKET: - if (copy_range == 0 || copy_range > entry->skb->len) - data_len = entry->skb->len; + if (copy_range == 0) + data_len = ~0UL; else data_len = copy_range; @@ -257,7 +257,7 @@ } if (data_len) - memcpy(pmsg->payload, entry->skb->data, data_len); + skb_copy_bits(entry->skb, 0, pmsg->payload, data_len); nlh->nlmsg_len = skb->tail - old_tail; return skb;