summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_flood.c
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2021-10-07 00:58:09 +0200
committerGitHub <noreply@github.com>2021-10-07 00:58:09 +0200
commitef11fb018f21810c6bcb4c6653deabbcd2d8b68a (patch)
tree18b1a1b30a400ba40a5ac628bd0874807f36c876 /ospf6d/ospf6_flood.c
parentbuild: bump configure.ac to `8.2-dev` (diff)
parentospf6d: ospf6d is crashing upon receiving duplicated Grace LSA. (diff)
downloadfrr-ef11fb018f21810c6bcb4c6653deabbcd2d8b68a.tar.xz
frr-ef11fb018f21810c6bcb4c6653deabbcd2d8b68a.zip
Merge pull request #9738 from rgirada/ospfv3_crash
ospf6d: ospf6d is crashing upon receiving duplicated Grace LSA.
Diffstat (limited to 'ospf6d/ospf6_flood.c')
-rw-r--r--ospf6d/ospf6_flood.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/ospf6d/ospf6_flood.c b/ospf6d/ospf6_flood.c
index 6ad2a70f0..e565ac4e0 100644
--- a/ospf6d/ospf6_flood.c
+++ b/ospf6d/ospf6_flood.c
@@ -1026,15 +1026,8 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from,
if (old)
ospf6_flood_clear(old);
- /* (b) immediately flood and (c) remove from all retrans-list */
- /* Prevent self-originated LSA to be flooded. this is to make
- reoriginated instance of the LSA not to be rejected by other
- routers
- due to MinLSArrival. */
self_originated = (new->header->adv_router
== from->ospf6_if->area->ospf6->router_id);
- if (!self_originated)
- ospf6_flood(from, new);
/* Received non-self-originated Grace LSA. */
if (IS_GRACE_LSA(new) && !self_originated) {
@@ -1080,6 +1073,14 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from,
}
}
+ /* (b) immediately flood and (c) remove from all retrans-list */
+ /* Prevent self-originated LSA to be flooded. this is to make
+ * reoriginated instance of the LSA not to be rejected by other
+ * routers due to MinLSArrival.
+ */
+ if (!self_originated)
+ ospf6_flood(from, new);
+
/* (d), installing lsdb, which may cause routing
table calculation (replacing database copy) */
ospf6_install_lsa(new);