On Wed, Aug 10, 2022 at 03:59:12PM +0200, Theo Buehler wrote:
> 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;
>
Nice find. This is indeed wrong. OK claudio@
--
:wq Claudio