]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: fix incorrect json in bgp_show_table_rd 18135/head
authorLouis Scalbert <louis.scalbert@6wind.com>
Wed, 12 Feb 2025 11:50:42 +0000 (12:50 +0100)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Wed, 12 Feb 2025 20:11:03 +0000 (20:11 +0000)
In bgp_show_table_rd(), the is_last argument is determined using the
expression "next == NULL" to check if the RD table is the last one. This
helps ensure proper JSON formatting.

However, if next is not NULL but is no longer associated with a BGP
table, the JSON output becomes malformed.

Updates the condition to also verify the existence of the next bgp_dest
table.

Fixes: 1ae44dfcba ("bgpd: unify 'show bgp' with RD with normal unicast bgp show")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
(cherry picked from commit cf0269649cdd09b8d3f2dd8815caf6ecf9cdeef9)

bgpd/bgp_route.c

index e70ebabc356535dbb0da14f6b6f0664314507dcd..9adf6ea65bd21043b1303457ac2a2d65c4b91449 100644 (file)
@@ -11993,10 +11993,9 @@ int bgp_show_table_rd(struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
 
                        memcpy(&prd, dest_p, sizeof(struct prefix_rd));
                        prefix_rd2str(&prd, rd, sizeof(rd), bgp->asnotation);
-                       bgp_show_table(vty, bgp, afi, safi, itable, type, output_arg,
-                                      rd, next == NULL, &output_cum,
-                                      &total_cum, &json_header_depth,
-                                      show_flags, RPKI_NOT_BEING_USED);
+                       bgp_show_table(vty, bgp, afi, safi, itable, type, output_arg, rd,
+                                      !bgp_dest_get_bgp_table_info(next), &output_cum, &total_cum,
+                                      &json_header_depth, show_flags, RPKI_NOT_BEING_USED);
                        if (next == NULL)
                                show_msg = false;
                }