summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_frag.c
diff options
context:
space:
mode:
authordarrenr <darrenr@FreeBSD.org>2000-10-26 12:33:42 +0000
committerdarrenr <darrenr@FreeBSD.org>2000-10-26 12:33:42 +0000
commit1a1de29bc037bc05ce4aec3d225e476799ab5a27 (patch)
tree50760b3edd676bcf8b9bc65cbfd7839eb1866c95 /sys/netinet/ip_frag.c
parenta21e3405e2f118d575c74cf92c09a22eaee4c261 (diff)
downloadFreeBSD-src-1a1de29bc037bc05ce4aec3d225e476799ab5a27.zip
FreeBSD-src-1a1de29bc037bc05ce4aec3d225e476799ab5a27.tar.gz
fix conflicts from rcsids
Diffstat (limited to 'sys/netinet/ip_frag.c')
-rw-r--r--sys/netinet/ip_frag.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/sys/netinet/ip_frag.c b/sys/netinet/ip_frag.c
index 8d2bbc5..2a10988 100644
--- a/sys/netinet/ip_frag.c
+++ b/sys/netinet/ip_frag.c
@@ -215,7 +215,7 @@ u_int pass;
ipfr_t *ipf;
if ((ip->ip_v != 4) || (fr_frag_lock))
- return NULL;
+ return -1;
WRITE_ENTER(&ipf_frag);
ipf = ipfr_new(ip, fin, pass, ipfr_heads);
RWLOCK_EXIT(&ipf_frag);
@@ -232,7 +232,7 @@ nat_t *nat;
ipfr_t *ipf;
if ((ip->ip_v != 4) || (fr_frag_lock))
- return NULL;
+ return -1;
WRITE_ENTER(&ipf_natfrag);
ipf = ipfr_new(ip, fin, pass, ipfr_nattab);
if (ipf != NULL) {
@@ -329,13 +329,16 @@ fr_info_t *fin;
ipf = ipfr_lookup(ip, fin, ipfr_nattab);
if (ipf != NULL) {
nat = ipf->ipfr_data;
- /*
- * This is the last fragment for this packet.
- */
- if ((ipf->ipfr_ttl == 1) && (nat != NULL)) {
- nat->nat_data = NULL;
- ipf->ipfr_data = NULL;
- }
+ if (nat->nat_ifp == fin->fin_ifp) {
+ /*
+ * This is the last fragment for this packet.
+ */
+ if ((ipf->ipfr_ttl == 1) && (nat != NULL)) {
+ nat->nat_data = NULL;
+ ipf->ipfr_data = NULL;
+ }
+ } else
+ nat = NULL;
} else
nat = NULL;
RWLOCK_EXIT(&ipf_natfrag);
OpenPOWER on IntegriCloud