untrusted comment: verify with openbsd-73-base.pub
RWQS90bYzZ4XFh+9JTTZzJapAglwCzqNR6cUONf1CZZnOHV/6NwCSUZAfUwPDAxmtL+I8KK78fX83HCJ/7+yYURHpxIufrHWPAY=
OpenBSD 7.3 errata 009, July 12, 2023:
When tracking nexthops over IPv6 multipath routes, or when receiving
a NOTIFICATION while reaching an internal limit, bgpd(8) could crash.
Apply by doing:
signify -Vep /etc/signify/openbsd-73-base.pub -x 009_bgpd.patch.sig \
-m - | (cd /usr/src && patch -p0)
And then rebuild and install bgpd(8):
cd /usr/src/usr.sbin/bgpd
make obj
make
make install
Index: usr.sbin/bgpd/kroute.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/kroute.c,v
diff -u -p -u -r1.304 kroute.c
--- usr.sbin/bgpd/kroute.c 7 Mar 2023 10:30:38 -0000 1.304
+++ usr.sbin/bgpd/kroute.c 10 Jul 2023 12:42:37 -0000
@@ -1864,7 +1864,7 @@ kroute6_remove(struct ktable *kt, struct
}
/* check whether a nexthop depends on this kroute */
- if (kr->flags & F_NEXTHOP) {
+ if (krm->flags & F_NEXTHOP) {
RB_FOREACH(n, knexthop_tree, KT2KNT(kt)) {
if (n->kroute == krm)
knexthop_validate(kt, n);
Index: usr.sbin/bgpd/session.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/session.c,v
diff -u -p -u -r1.442 session.c
--- usr.sbin/bgpd/session.c 9 Mar 2023 13:12:19 -0000 1.442
+++ usr.sbin/bgpd/session.c 10 Jul 2023 12:42:37 -0000
@@ -2003,6 +2003,8 @@ session_process_msg(struct peer *p)
}
}
+ if (p->rbuf == NULL)
+ return;
if (rpos < av) {
left = av - rpos;
memmove(&p->rbuf->buf, p->rbuf->buf + rpos, left);