]> git.proxmox.com Git - mirror_frr.git/commitdiff
Merge pull request #8250 from idryzhov/fix-nb-running-get-entry
authorRenato Westphal <renato@opensourcerouting.org>
Wed, 24 Mar 2021 22:39:09 +0000 (19:39 -0300)
committerGitHub <noreply@github.com>
Wed, 24 Mar 2021 22:39:09 +0000 (19:39 -0300)
Fix aborts when using nb_running_get_entry during validation stage

1  2 
isisd/isis_nb_config.c
zebra/zebra_nb.h

diff --combined isisd/isis_nb_config.c
index d47d966f71f14ebfaa7a37b4adf961b3ae20cf5d,259e10bbdd3833bc8ab272f98f662bbe63a1ae67..c8ad816b585bd6196d8c18c1be172a2b66e6208a
  #include "isisd/isis_spf.h"
  #include "isisd/isis_spf_private.h"
  #include "isisd/isis_te.h"
 -#include "isisd/isis_memory.h"
  #include "isisd/isis_mt.h"
  #include "isisd/isis_redist.h"
  #include "isisd/isis_ldp_sync.h"
  #include "isisd/isis_dr.h"
  
 +DEFINE_MTYPE_STATIC(ISISD, ISIS_MPLS_TE,    "ISIS MPLS_TE parameters");
 +DEFINE_MTYPE_STATIC(ISISD, ISIS_PLIST_NAME, "ISIS prefix-list name");
 +
  extern struct zclient *zclient;
  
  /*
@@@ -133,7 -131,7 +133,7 @@@ int isis_instance_area_address_create(s
  
        switch (args->event) {
        case NB_EV_VALIDATE:
-               area = nb_running_get_entry(args->dnode, NULL, true);
+               area = nb_running_get_entry(args->dnode, NULL, false);
                if (area == NULL)
                        return NB_ERR_VALIDATION;
                addr.addr_len = dotformat2buff(buff, net_title);
diff --combined zebra/zebra_nb.h
index 82529663baaefe1f9b1cdf195e1718dcf6e5f9f6,6a2d97d39533f4eed3bbdcd36dd801ea482dea04..79632dc83e3eadd0eb7cc12a575e4edcc7e85a55
@@@ -149,12 -149,14 +149,14 @@@ struct yang_data *lib_interface_zebra_s
        struct nb_cb_get_elem_args *args);
  struct yang_data *lib_interface_zebra_state_mcast_group_get_elem(
        struct nb_cb_get_elem_args *args);
- int lib_vrf_zebra_ribs_rib_create(struct nb_cb_create_args *args);
- int lib_vrf_zebra_ribs_rib_destroy(struct nb_cb_destroy_args *args);
  const void *lib_vrf_zebra_ribs_rib_get_next(struct nb_cb_get_next_args *args);
  int lib_vrf_zebra_ribs_rib_get_keys(struct nb_cb_get_keys_args *args);
  const void *
  lib_vrf_zebra_ribs_rib_lookup_entry(struct nb_cb_lookup_entry_args *args);
+ struct yang_data *
+ lib_vrf_zebra_ribs_rib_afi_safi_name_get_elem(struct nb_cb_get_elem_args *args);
+ struct yang_data *
+ lib_vrf_zebra_ribs_rib_table_id_get_elem(struct nb_cb_get_elem_args *args);
  const void *
  lib_vrf_zebra_ribs_rib_route_get_next(struct nb_cb_get_next_args *args);
  int lib_vrf_zebra_ribs_rib_route_get_keys(struct nb_cb_get_keys_args *args);
@@@ -201,6 -203,19 +203,6 @@@ lib_vrf_zebra_ribs_rib_route_nexthop_gr
        struct nb_cb_get_next_args *args);
  int lib_vrf_zebra_ribs_rib_route_nexthop_group_frr_nexthops_nexthop_get_keys(
        struct nb_cb_get_keys_args *args);
 -int lib_vrf_zebra_ribs_rib_create(struct nb_cb_create_args *args);
 -int lib_vrf_zebra_ribs_rib_destroy(struct nb_cb_destroy_args *args);
 -const void *lib_vrf_zebra_ribs_rib_get_next(struct nb_cb_get_next_args *args);
 -int lib_vrf_zebra_ribs_rib_get_keys(struct nb_cb_get_keys_args *args);
 -const void *
 -lib_vrf_zebra_ribs_rib_lookup_entry(struct nb_cb_lookup_entry_args *args);
 -const void *
 -lib_vrf_zebra_ribs_rib_route_get_next(struct nb_cb_get_next_args *args);
 -int lib_vrf_zebra_ribs_rib_route_get_keys(struct nb_cb_get_keys_args *args);
 -const void *
 -lib_vrf_zebra_ribs_rib_route_lookup_entry(struct nb_cb_lookup_entry_args *args);
 -struct yang_data *
 -lib_vrf_zebra_ribs_rib_route_prefix_get_elem(struct nb_cb_get_elem_args *args);
  const void *lib_vrf_zebra_ribs_rib_route_route_entry_get_next(
        struct nb_cb_get_next_args *args);
  int lib_vrf_zebra_ribs_rib_route_route_entry_get_keys(