summaryrefslogtreecommitdiff
path: root/sys/netinet/if_ether.c
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2016-03-24 07:15:11 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2016-03-24 07:15:11 +0000
commit8921b5f3c88aa65c112dec23058e2f056f43669e (patch)
tree35438dcffb98640d6889bb3c41e522e45e542564 /sys/netinet/if_ether.c
parent0ffd703d14597b9ac057ca404d77320f4add2fac (diff)
Ensure that a found proxy ARP entry has the correct flag.
ok bluhm@
Diffstat (limited to 'sys/netinet/if_ether.c')
-rw-r--r--sys/netinet/if_ether.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index 041025dce8c..50095387798 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ether.c,v 1.202 2016/03/07 11:00:36 mpi Exp $ */
+/* $OpenBSD: if_ether.c,v 1.203 2016/03/24 07:15:10 mpi Exp $ */
/* $NetBSD: if_ether.c,v 1.31 1996/05/11 12:59:58 mycroft Exp $ */
/*
@@ -696,6 +696,12 @@ arplookup(u_int32_t addr, int create, int proxy, u_int tableid)
rtfree(rt);
return (NULL);
}
+
+ if (proxy && !ISSET(rt->rt_flags, RTF_ANNOUNCE)) {
+ rtfree(rt);
+ return (NULL);
+ }
+
return (rt);
}