]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Fix another crash in orf 18194/head
authorDonald Sharp <sharpd@nvidia.com>
Tue, 18 Feb 2025 15:25:47 +0000 (10:25 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 19 Feb 2025 11:29:36 +0000 (06:29 -0500)
I was pointed at yet another crash in the orf code.  I think it
stems from basicaly the same problem as the last one.  Let's just
make sure that the orf_plist is handled appropriately.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_packet.c

index 37de42d0e3b860f50c2498875bd2f7fac799f5e9..54cd1250cbcaf9b63fef99abc19464dd5d294cdf 100644 (file)
@@ -2842,6 +2842,14 @@ static int bgp_route_refresh_receive(struct peer_connection *connection,
                                        prefix_bgp_orf_remove_all(afi, name);
                                        peer->orf_plist[afi][safi] = prefix_bgp_orf_lookup(afi,
                                                                                           name);
+
+                                       paf = peer_af_find(peer, afi, safi);
+                                       if (paf && paf->subgroup) {
+                                               updgrp = PAF_UPDGRP(paf);
+                                               updgrp_peer = UPDGRP_PEER(updgrp);
+                                               updgrp_peer->orf_plist[afi][safi] =
+                                                       peer->orf_plist[afi][safi];
+                                       }
                                        break;
                                }