Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/ip_input.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/netinet/ip_input.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.114.4.2 retrieving revision 1.114.4.3 diff -u -p -r1.114.4.2 -r1.114.4.3 --- src/sys/netinet/ip_input.c 2000/08/27 01:11:04 1.114.4.2 +++ src/sys/netinet/ip_input.c 2000/10/17 00:59:49 1.114.4.3 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.114.4.2 2000/08/27 01:11:04 itojun Exp $ */ +/* $NetBSD: ip_input.c,v 1.114.4.3 2000/10/17 00:59:49 tv Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -1398,8 +1398,11 @@ ip_forward(m, srcrt) /* * Save at most 68 bytes of the packet in case * we need to generate an ICMP message to the src. + * Pullup to avoid sharing mbuf cluster between m and mcopy. */ - mcopy = m_copy(m, 0, imin((int)ip->ip_len, 68)); + mcopy = m_copym(m, 0, imin((int)ip->ip_len, 68), M_DONTWAIT); + if (mcopy) + mcopy = m_pullup(mcopy, ip->ip_hl << 2); /* * If forwarding packet using same interface that it came in on,