diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2023-09-20 15:24:25 +0300 |
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2023-09-20 15:25:29 +0300 |
| commit | a914bd1643fb95fa82b884d3e719b129bc4665e7 (patch) | |
| tree | 02876499cc092f3d843408e89c629aade98f9820 /staticd | |
| parent | cbbdcee7a80a23bbb49ba0d3de5a1e0aa4a35fe1 (diff) | |
staticd: Check against NULL before dereferencing vrf
If VRF is not found by the given name, validate it and return an error.
Fixes: 76b2bc97e738 ("staticd: Accept full blackhole typed keywords for ip_route_cmd")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'staticd')
| -rw-r--r-- | staticd/static_nb_config.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/staticd/static_nb_config.c b/staticd/static_nb_config.c index 6673cce108..520a3ee2c1 100644 --- a/staticd/static_nb_config.c +++ b/staticd/static_nb_config.c @@ -382,6 +382,13 @@ static int static_nexthop_bh_type_modify(struct nb_cb_modify_args *args) nh_vrf = yang_dnode_get_string(args->dnode, "../vrf"); if (nh_ifname && nh_vrf) { struct vrf *vrf = vrf_lookup_by_name(nh_vrf); + + if (!vrf) { + snprintf(args->errmsg, args->errmsg_len, + "nexthop vrf %s not found", nh_vrf); + return NB_ERR_VALIDATION; + } + struct interface *ifp = if_lookup_by_name(nh_ifname, vrf->vrf_id); |
