summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ripd/kroute.c
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2007-03-13 16:50:58 +0000
committerclaudio <claudio@openbsd.org>2007-03-13 16:50:58 +0000
commit11aed6e8c91dd44c9974624e19e221a2606d2d37 (patch)
tree954a7be8e35752c0ae10fe1933e600b72b17b11d /usr.sbin/ripd/kroute.c
parentrtm_tableid is only valid for RTM_ADD, RTM_CHANGE and RTM_DELETE but not (diff)
downloadwireguard-openbsd-11aed6e8c91dd44c9974624e19e221a2606d2d37.tar.xz
wireguard-openbsd-11aed6e8c91dd44c9974624e19e221a2606d2d37.zip
Same problem as in ospfd's kroute.c don't check rtm_tableid without verifying
that rtm_type is one of RTM_ADD, RTM_CHANGE or RTM_DELETE.
Diffstat (limited to 'usr.sbin/ripd/kroute.c')
-rw-r--r--usr.sbin/ripd/kroute.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/usr.sbin/ripd/kroute.c b/usr.sbin/ripd/kroute.c
index a67848b4c22..e07cc9a194d 100644
--- a/usr.sbin/ripd/kroute.c
+++ b/usr.sbin/ripd/kroute.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kroute.c,v 1.5 2006/11/28 19:21:15 reyk Exp $ */
+/* $OpenBSD: kroute.c,v 1.6 2007/03/13 16:50:58 claudio Exp $ */
/*
* Copyright (c) 2004 Esben Norby <norby@openbsd.org>
@@ -997,14 +997,14 @@ dispatch_rtmsg(void)
flags = F_KERNEL;
nexthop.s_addr = 0;
- if (rtm->rtm_tableid != 0)
- continue;
-
if (rtm->rtm_type == RTM_ADD || rtm->rtm_type == RTM_CHANGE ||
rtm->rtm_type == RTM_DELETE) {
sa = (struct sockaddr *)(rtm + 1);
get_rtaddrs(rtm->rtm_addrs, sa, rti_info);
+ if (rtm->rtm_tableid != 0)
+ continue;
+
if (rtm->rtm_pid == kr_state.pid) /* cause by us */
continue;