The below matches the VPN4 code and makes more sense given that we deref kr6 in the else block.
Index: kroute.c =================================================================== RCS file: /cvs/src/usr.sbin/bgpd/kroute.c,v retrieving revision 1.287 diff -u -p -U5 -r1.287 kroute.c --- kroute.c 3 Aug 2022 08:16:05 -0000 1.287 +++ kroute.c 10 Aug 2022 13:56:28 -0000 @@ -619,11 +619,11 @@ krVPN6_change(struct ktable *kt, struct /* for blackhole and reject routes nexthop needs to be ::1 */ if (kf->flags & (F_BLACKHOLE|F_REJECT)) bcopy(&lo6, &kf->nexthop.v6, sizeof(kf->nexthop.v6)); if ((kr6 = kroute6_find(kt, &kf->prefix, kf->prefixlen, - kf->priority)) != NULL) { + kf->priority)) == NULL) { if (kroute_insert(kt, kf) == -1) return (-1); } else { kr6->mplslabel = mplslabel; kr6->ifindex = kf->ifindex;