diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index b5fce35b1e6f..231fb86e615b 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -1107,11 +1107,16 @@ static int isis_spf_process_lsp(struct isis_spftree *spftree, else fragnode = listnextnode(fragnode); - if (fragnode) { + while (fragnode) { lsp = listgetdata(fragnode); - goto lspfragloop; + if (lsp->tlvs) + break; + listnextnode(fragnode); } + if (fragnode) + goto lspfragloop; + return ISIS_OK; }