Download raw body.
bgpd: don't fatal in rde_dump_ctx_new() for bad imsg types in the adj-rib-out case
bgpd: don't fatal in rde_dump_ctx_new() for bad imsg types in the adj-rib-out case
On Wed, May 13, 2026 at 03:44:45PM +0200, Claudio Jeker wrote:
> In rde_dump_ctx_new() the adj-rib-out case only covers some of the
> possible imsg types rde_dump_ctx_new() can be called with. So ship back an
> error instead of the fatalx call.
>
> The error could be refined but I think "operation not supported" is fine
> for now.
ok tb
> --
> :wq Claudio
>
> Index: rde.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v
> diff -u -p -r1.699 rde.c
> --- rde.c 12 May 2026 20:27:31 -0000 1.699
> +++ rde.c 13 May 2026 12:10:46 -0000
> @@ -3385,7 +3385,12 @@ rde_dump_ctx_new(struct ctl_show_rib_req
> free(ctx);
> return;
> default:
> - fatalx("%s: unsupported imsg type", __func__);
> + log_warnx("%s: bad imsg type %d", __func__, req->type);
> + error = CTL_RES_OPNOTSUPP;
> + imsg_compose(ibuf_se_ctl, IMSG_CTL_RESULT, 0, pid, -1,
> + &error, sizeof(error));
> + free(ctx);
> + return;
> }
>
> LIST_INSERT_HEAD(&rde_dump_h, ctx, entry);
>
bgpd: don't fatal in rde_dump_ctx_new() for bad imsg types in the adj-rib-out case
bgpd: don't fatal in rde_dump_ctx_new() for bad imsg types in the adj-rib-out case