Skip to content

Commit

Permalink
bgpd: fix incorrect json in bgp_show_table_rd
Browse files Browse the repository at this point in the history
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: 1ae44df ("bgpd: unify 'show bgp' with RD with normal unicast bgp show")
Signed-off-by: Louis Scalbert <[email protected]>
  • Loading branch information
louis-6wind committed Feb 12, 2025
1 parent d275f55 commit cf02696
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions bgpd/bgp_route.c
Original file line number Diff line number Diff line change
Expand Up @@ -12436,10 +12436,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;
}
Expand Down

0 comments on commit cf02696

Please sign in to comment.