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.36 retrieving revision 1.40 diff -u -p -r1.36 -r1.40 --- src/sys/netinet/ip_input.c 1996/09/14 14:40:26 1.36 +++ src/sys/netinet/ip_input.c 1996/10/22 11:27:05 1.40 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.36 1996/09/14 14:40:26 mrg Exp $ */ +/* $NetBSD: ip_input.c,v 1.40 1996/10/22 11:27:05 veego Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1993 @@ -251,8 +251,9 @@ next: for (pfh = pfil_hook_get(PFIL_IN); pfh; pfh = pfh->pfil_link.le_next) if (pfh->pfil_func) { if (pfh->pfil_func(ip, hlen, m->m_pkthdr.rcvif, 0, &m0)) - goto bad; - ip = mtod(m = m0, struct ip *); + goto next; + else + ip = mtod(m = m0, struct ip *); } #endif /* PFIL_HOOKS */ @@ -364,7 +365,7 @@ ours: * if the packet was previously fragmented, * but it's not worth the time; just let them time out.) */ - if (ip->ip_off &~ IP_DF) { + if (ip->ip_off & ~(IP_DF|IP_RF)) { if (m->m_flags & M_EXT) { /* XXX */ if ((m = m_pullup(m, sizeof (struct ip))) == 0) { ipstat.ips_toosmall++;