From 63ba102780cc25ed8f446bea65f60fdae75325c3 Mon Sep 17 00:00:00 2001 From: Hiroki Shirokura Date: Sun, 5 Jan 2020 22:56:14 +0900 Subject: [PATCH] bgpd: fix large route-distinguisher's format This commit is about #5629 's issue. Before this commit, bgpd creates format string of bgp-route-distinguisher as int32, but correctly format is uint32. current bgpd's sh-run-cli generate int32 rd, so if user sets the rd as 1:4294967295(0x1:0xffffffff), sh-run cli generates 1: -1 as running-config. This commit fix that issue. Signed-off-by: Hiroki Shirokura --- bgpd/bgp_rd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_rd.c b/bgpd/bgp_rd.c index 571139a49aba..be950dfa5165 100644 --- a/bgpd/bgp_rd.c +++ b/bgpd/bgp_rd.c @@ -174,15 +174,16 @@ char *prefix_rd2str(struct prefix_rd *prd, char *buf, size_t size) if (type == RD_TYPE_AS) { decode_rd_as(pnt + 2, &rd_as); - snprintf(buf, size, "%u:%d", rd_as.as, rd_as.val); + snprintf(buf, size, "%u:%" PRIu32, rd_as.as, rd_as.val); return buf; } else if (type == RD_TYPE_AS4) { decode_rd_as4(pnt + 2, &rd_as); - snprintf(buf, size, "%u:%d", rd_as.as, rd_as.val); + snprintf(buf, size, "%u:%" PRIu32, rd_as.as, rd_as.val); return buf; } else if (type == RD_TYPE_IP) { decode_rd_ip(pnt + 2, &rd_ip); - snprintf(buf, size, "%s:%d", inet_ntoa(rd_ip.ip), rd_ip.val); + snprintf(buf, size, "%s:%" PRIu16, inet_ntoa(rd_ip.ip), + rd_ip.val); return buf; } #if ENABLE_BGP_VNC