]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: fix incorrect json in bgp_show_table_rd
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:12:06 +0000 (20:12 +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 aa2c3a6a560e376d7bf62b7adc5e958b70d78a6a..ed38f61d9a545fadc31f56f332799a595ad50414 100644 (file)
@@ -11704,10 +11704,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;
                }