]> git.puffer.fish Git - matthieu/frr.git/commitdiff
Revert "isisd: fix infinite loop when parsing LSPs"
authorLouis Scalbert <louis.scalbert@6wind.com>
Fri, 27 May 2022 08:37:08 +0000 (10:37 +0200)
committerLouis Scalbert <louis.scalbert@6wind.com>
Thu, 30 Jun 2022 14:20:49 +0000 (16:20 +0200)
This reverts commit 5e56a50559fd4a85f1912464e6e13d13969aa238.

isisd/isis_spf.c

index 09f92554c020bd7090d3715e0d24ba4cf46184bf..2d792a9c75ea5879f833fccb55f6a88a59c5b089 100644 (file)
@@ -1400,13 +1400,14 @@ static void spf_adj_list_parse_tlv(struct isis_spftree *spftree,
                spf_adj_list_parse_lsp(spftree, adj_list, lsp, id, metric);
 }
 
-static void spf_adj_list_parse_lsp_frag(struct isis_spftree *spftree,
-                                       struct list *adj_list,
-                                       struct isis_lsp *lsp,
-                                       const uint8_t *pseudo_nodeid,
-                                       uint32_t pseudo_metric)
+static void spf_adj_list_parse_lsp(struct isis_spftree *spftree,
+                                  struct list *adj_list, struct isis_lsp *lsp,
+                                  const uint8_t *pseudo_nodeid,
+                                  uint32_t pseudo_metric)
 {
        bool pseudo_lsp = LSP_PSEUDO_ID(lsp->hdr.lsp_id);
+       struct isis_lsp *frag;
+       struct listnode *node;
        struct isis_item *head;
        struct isis_item_list *te_neighs;
 
@@ -1444,27 +1445,14 @@ static void spf_adj_list_parse_lsp_frag(struct isis_spftree *spftree,
                        }
                }
        }
-}
-
-
-static void spf_adj_list_parse_lsp(struct isis_spftree *spftree,
-                                  struct list *adj_list, struct isis_lsp *lsp,
-                                  const uint8_t *pseudo_nodeid,
-                                  uint32_t pseudo_metric)
-{
-       struct isis_lsp *frag;
-       struct listnode *node;
-
-       spf_adj_list_parse_lsp_frag(spftree, adj_list, lsp, pseudo_nodeid,
-                                   pseudo_metric);
 
        /* Parse LSP fragments. */
        for (ALL_LIST_ELEMENTS_RO(lsp->lspu.frags, node, frag)) {
                if (!frag->tlvs)
                        continue;
 
-               spf_adj_list_parse_lsp_frag(spftree, adj_list, frag,
-                                           pseudo_nodeid, pseudo_metric);
+               spf_adj_list_parse_lsp(spftree, adj_list, frag, pseudo_nodeid,
+                                      pseudo_metric);
        }
 }