]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospfd/ospf_bfd.c
ospfd: Coverity warns that we could possibly use unininted data
[mirror_frr.git] / ospfd / ospf_bfd.c
index b202cd01f12958407a82a312d05c6597d43dc284..fb117ecfc21b0a21926b01856555ebb811983925 100644 (file)
@@ -99,7 +99,6 @@ void ospf_neighbor_bfd_apply(struct ospf_neighbor *nbr)
                bfd_sess_set_ipv4_addrs(nbr->bfd_session, NULL, &nbr->src);
                bfd_sess_set_interface(nbr->bfd_session, oi->ifp->name);
                bfd_sess_set_vrf(nbr->bfd_session, oi->ospf->vrf_id);
-               bfd_sess_enable(nbr->bfd_session, true);
        }
 
        /* Set new configuration. */
@@ -166,7 +165,9 @@ void ospf_bfd_write_config(struct vty *vty, const struct ospf_if_params *params
                           __attribute__((unused)))
 {
 #if HAVE_BFDD == 0
-       if (CHECK_FLAG(bfd_info->flags, BFD_FLAG_PARAM_CFG))
+       if (params->bfd_config->detection_multiplier != BFD_DEF_DETECT_MULT
+           || params->bfd_config->min_rx != BFD_DEF_MIN_RX
+           || params->bfd_config->min_tx != BFD_DEF_MIN_TX)
                vty_out(vty, " ip ospf bfd %d %d %d\n",
                        params->bfd_config->detection_multiplier,
                        params->bfd_config->min_rx, params->bfd_config->min_tx);
@@ -265,8 +266,12 @@ DEFUN (ip_ospf_bfd_prof,
        struct ospf_if_params *params;
        int idx_prof = 4;
 
-       ospf_interface_enable_bfd(ifp);
        params = IF_DEF_PARAMS(ifp);
+       if (!params->bfd_config) {
+               vty_out(vty, "ip ospf bfd has not been set\n");
+               return CMD_WARNING;
+       }
+
        strlcpy(params->bfd_config->profile, argv[idx_prof]->arg,
                sizeof(params->bfd_config->profile));
        ospf_interface_bfd_apply(ifp);
@@ -287,8 +292,10 @@ DEFUN (no_ip_ospf_bfd_prof,
        VTY_DECLVAR_CONTEXT(interface, ifp);
        struct ospf_if_params *params;
 
-       ospf_interface_enable_bfd(ifp);
        params = IF_DEF_PARAMS(ifp);
+       if (!params->bfd_config)
+               return CMD_SUCCESS;
+
        params->bfd_config->profile[0] = 0;
        ospf_interface_bfd_apply(ifp);