head 1.2; access; symbols perseant-exfatfs-base-20250801:1.2 perseant-exfatfs-base-20240630:1.2 perseant-exfatfs:1.2.0.44 perseant-exfatfs-base:1.2 cjep_sun2x:1.2.0.42 cjep_sun2x-base:1.2 cjep_staticlib_x-base1:1.2 cjep_staticlib_x:1.2.0.40 cjep_staticlib_x-base:1.2 phil-wifi-20200421:1.2 phil-wifi-20200411:1.2 phil-wifi-20200406:1.2 pgoyette-compat-merge-20190127:1.2 pgoyette-compat-20190127:1.2 pgoyette-compat-20190118:1.2 pgoyette-compat-1226:1.2 pgoyette-compat-1126:1.2 pgoyette-compat-1020:1.2 pgoyette-compat-0930:1.2 pgoyette-compat-0906:1.2 pgoyette-compat-0728:1.2 pgoyette-compat-0625:1.2 pgoyette-compat-0521:1.2 pgoyette-compat-0502:1.2 pgoyette-compat-0422:1.2 pgoyette-compat-0415:1.2 pgoyette-compat-0407:1.2 pgoyette-compat-0330:1.2 pgoyette-compat-0322:1.2 pgoyette-compat-0315:1.2 pgoyette-compat:1.2.0.38 pgoyette-compat-base:1.2 prg-localcount2-base3:1.2 prg-localcount2-base2:1.2 prg-localcount2-base1:1.2 prg-localcount2:1.2.0.36 prg-localcount2-base:1.2 pgoyette-localcount-20170426:1.2 bouyer-socketcan-base1:1.2 pgoyette-localcount-20170320:1.2 bouyer-socketcan:1.2.0.34 bouyer-socketcan-base:1.2 pgoyette-localcount-20170107:1.2 pgoyette-localcount-20161104:1.2 localcount-20160914:1.2 pgoyette-localcount-20160806:1.2 pgoyette-localcount-20160726:1.2 pgoyette-localcount:1.2.0.32 pgoyette-localcount-base:1.2 netbsd-5-2-3-RELEASE:1.2 netbsd-5-1-5-RELEASE:1.2 yamt-pagecache-base9:1.2 yamt-pagecache-tag8:1.2 tls-earlyentropy:1.2.0.28 tls-earlyentropy-base:1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2 riastradh-drm2-base3:1.2 netbsd-5-2-2-RELEASE:1.2 netbsd-5-1-4-RELEASE:1.2 netbsd-5-2-1-RELEASE:1.2 netbsd-5-1-3-RELEASE:1.2 agc-symver:1.2.0.30 agc-symver-base:1.2 tls-maxphys-base:1.2 yamt-pagecache-base8:1.2 netbsd-5-2:1.2.0.26 yamt-pagecache-base7:1.2 netbsd-5-2-RELEASE:1.2 netbsd-5-2-RC1:1.2 yamt-pagecache-base6:1.2 yamt-pagecache-base5:1.2 yamt-pagecache-base4:1.2 netbsd-5-1-2-RELEASE:1.2 netbsd-5-1-1-RELEASE:1.2 yamt-pagecache-base3:1.2 yamt-pagecache-base2:1.2 yamt-pagecache:1.2.0.24 yamt-pagecache-base:1.2 bouyer-quota2-nbase:1.2 bouyer-quota2:1.2.0.22 bouyer-quota2-base:1.2 matt-nb5-pq3:1.2.0.20 matt-nb5-pq3-base:1.2 netbsd-5-1:1.2.0.18 netbsd-5-1-RELEASE:1.2 netbsd-5-1-RC4:1.2 netbsd-5-1-RC3:1.2 netbsd-5-1-RC2:1.2 netbsd-5-1-RC1:1.2 netbsd-5-0-2-RELEASE:1.2 netbsd-5-0-1-RELEASE:1.2 jym-xensuspend-nbase:1.2 netbsd-5-0:1.2.0.16 netbsd-5-0-RELEASE:1.2 netbsd-5-0-RC4:1.2 netbsd-5-0-RC3:1.2 netbsd-5-0-RC2:1.2 jym-xensuspend:1.2.0.14 jym-xensuspend-base:1.2 netbsd-5-0-RC1:1.2 netbsd-5:1.2.0.12 netbsd-5-base:1.2 mjf-devfs2:1.2.0.10 mjf-devfs2-base:1.2 yamt-pf42-base4:1.2 yamt-pf42-base3:1.2 hpcarm-cleanup-nbase:1.2 v4-1-29:1.1.1.1 yamt-pf42-base2:1.2 yamt-pf42:1.2.0.8 yamt-pf42-base:1.2 keiichi-mipv6:1.2.0.6 keiichi-mipv6-base:1.2 cube-autoconf:1.2.0.4 cube-autoconf-base:1.2 hpcarm-cleanup:1.2.0.2 hpcarm-cleanup-base:1.2 v4-1-23:1.1.1.1 v4-1-22:1.1.1.1 v4-1-20:1.1.1.1 v4-1-19:1.1.1.1 v4-1-13:1.1.1.1 v4-1-8:1.1.1.1 v4-1-6:1.1.1.1 v4-1-5:1.1.1.1 v4-1-3:1.1.1.1 v4-1-1:1.1.1.1 v3-4-29:1.1.1.1 v3-4-27:1.1.1.1 v3-4-25:1.1.1.1 v3-4-23:1.1.1.1 v3-4-16:1.1.1.1 v3-4-9:1.1.1.1 v3-4-6:1.1.1.1 v3-4-4:1.1.1.1 v3-4-3:1.1.1.1 v3-4-2:1.1.1.1 v3-4-1:1.1.1.1 v3-3-8:1.1.1.1 v3-3-6:1.1.1.1 v3-3-5:1.1.1.1 DARRENR:1.1.1; locks; strict; comment @# @; 1.2 date 99.12.11.22.49.43; author veego; state dead; branches; next 1.1; 1.1 date 99.12.11.22.24.02; author veego; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 99.12.11.22.24.02; author veego; state Exp; branches; next ; desc @@ 1.2 log @We don't need these files. @ text @*** /sys/netinet/ip_input.c.orig Thu Oct 24 22:27:27 1996 --- /sys/netinet/ip_input.c Tue Feb 18 21:18:19 1997 *************** *** 93,98 **** --- 93,102 ---- int ipqmaxlen = IFQ_MAXLEN; struct in_ifaddr *in_ifaddr; /* first inet address */ struct ifqueue ipintrq; + #if defined(IPFILTER_LKM) || defined(IPFILTER) + int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf **)); + int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf **)); + #endif struct ipstat ipstat; struct ipq ipq; *************** *** 219,226 **** } ip = mtod(m, struct ip *); } ! ip->ip_sum = in_cksum(m, hlen); ! if (ip->ip_sum) { ipstat.ips_badsum++; goto bad; } --- 223,229 ---- } ip = mtod(m, struct ip *); } ! if (in_cksum(m, hlen)) { ipstat.ips_badsum++; goto bad; } *************** *** 267,272 **** --- 270,288 ---- goto next; } + #if defined(IPFILTER) || defined(IPFILTER_LKM) + /* + * Check if we want to allow this packet to be processed. + * Consider it to be bad if not. + */ + if (fr_checkp) { + struct mbuf *m1 = m; + + if ((*fr_checkp)(ip, hlen, m->m_pkthdr.rcvif, 0, &m1) || !m1) + goto next; + ip = mtod(m = m1, struct ip *); + } + #endif /* * Process options and, if not destined for us, * ship it on. ip_dooptions returns 1 when an *************** *** 527,532 **** --- 533,540 ---- * if they are completely covered, dequeue them. */ while (q != (struct ipasfrag *)fp && ip->ip_off + ip->ip_len > q->ip_off) { + struct mbuf *m0; + i = (ip->ip_off + ip->ip_len) - q->ip_off; if (i < q->ip_len) { q->ip_len -= i; *************** *** 526,534 **** m_adj(dtom(q), i); break; } q = q->ipf_next; - m_freem(dtom(q->ipf_prev)); ip_deq(q->ipf_prev); } insert: --- 542,551 ---- m_adj(dtom(q), i); break; } + m0 = dtom(q); q = q->ipf_next; ip_deq(q->ipf_prev); + m_freem(m0); } insert: @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @Inital import of IP Filter 3.3.5 under the dist directory. @ text @@