From cab7be7d5b1dfe6badb35160dd84bc9a10d33aa2 Mon Sep 17 00:00:00 2001 From: Louis Scalbert Date: Fri, 27 May 2022 10:37:08 +0200 Subject: [PATCH] Revert "isisd: fix infinite loop when parsing LSPs" This reverts commit 5e56a50559fd4a85f1912464e6e13d13969aa238. --- isisd/isis_spf.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index 09f92554c0..2d792a9c75 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -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); } } -- 2.39.5