summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorPeter Hessler <phessler@cvs.openbsd.org>2016-04-08 12:27:06 +0000
committerPeter Hessler <phessler@cvs.openbsd.org>2016-04-08 12:27:06 +0000
commit406c8ff908dc4c653b2c620edb9760e5b4072bf8 (patch)
treebfef5412ffe4e74684f3d18cd96984341c2a6017 /usr.sbin
parent63277f122c569a36c0f2d3e2ced5be410f2a1c1b (diff)
When bgp receives an RTM_CHANGE message for an RTF_MPATH route[1], and
it finds it actually on an interface, bgpd can get confused. In this case, just log it and treat it as an RTM_ADD so bgpd doesn't suicide. [1] includes all ospfd installed routes, btw. OK benno@ sthen@
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/bgpd/kroute.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.sbin/bgpd/kroute.c b/usr.sbin/bgpd/kroute.c
index 3dd1605604f..0441219d51b 100644
--- a/usr.sbin/bgpd/kroute.c
+++ b/usr.sbin/bgpd/kroute.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kroute.c,v 1.208 2016/03/22 15:53:00 claudio Exp $ */
+/* $OpenBSD: kroute.c,v 1.209 2016/04/08 12:27:05 phessler Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -3251,7 +3251,7 @@ dispatch_rtmsg_addr(struct rt_msghdr *rtm, struct sockaddr *rti_info[RTAX_MAX],
(kr = kroute_matchgw(kr, sa_in)) == NULL) {
log_warnx("dispatch_rtmsg_addr[change] "
"mpath route not found");
- return (-1);
+ goto add4;
} else if (mpath && rtm->rtm_type == RTM_ADD)
goto add4;
@@ -3323,7 +3323,7 @@ add4:
NULL) {
log_warnx("dispatch_rtmsg[change] "
"IPv6 mpath route not found");
- return (-1);
+ goto add6;
} else if (mpath && rtm->rtm_type == RTM_ADD)
goto add6;