Commit 7d95c445 authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

OSPF: Fix ECMP external merging

The variable nfa is not cleaned before each loop iteration and can have
a wrong value of nfa.nhs_reuse from the previous step.

Thanks to Bernardo Figueiredo for the bugreport and analysis.
parent 9e7d3a78
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1405,7 +1405,6 @@ ospf_ext_spf(struct ospf_proto *p)
  struct top_hash_entry *en;
  struct ospf_lsa_ext_local rt;
  ort *nf1, *nf2;
  orta nfa = {};
  ip_addr rtid;
  u32 br_metric;
  struct ospf_area *atmp;
@@ -1414,6 +1413,8 @@ ospf_ext_spf(struct ospf_proto *p)

  WALK_SLIST(en, p->lsal)
  {
    orta nfa = {};

    /* 16.4. (1) */
    if ((en->lsa_type != LSA_T_EXT) && (en->lsa_type != LSA_T_NSSA))
      continue;