From 919fe51b519e0abbb11ef97be1813b0c55c51202 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 27 Apr 2022 07:57:41 -0400 Subject: [PATCH] bgpd: Ensure pkt_afi and pkt_safi are not used uninited in some cases The compiler is, rightly, pointing out that in some cases it is possible that the pkt_afi and pkt_safi values are not properly set and could result in a use before initialized. I do not actually belive that this is possible, but let's make the compiler happy. Signed-off-by: Donald Sharp (cherry picked from commit 617975d114f41116a15f81ecf6f6c57487fc2e82) --- bgpd/bgp_attr.c | 8 ++++---- bgpd/bgp_bmp.c | 4 ++-- bgpd/bgp_open.c | 16 ++++++++-------- bgpd/bgp_packet.c | 12 ++++++------ 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index 6ee31f9a9f..162b929f32 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -3608,8 +3608,8 @@ size_t bgp_packet_mpattr_start(struct stream *s, struct peer *peer, afi_t afi, struct attr *attr) { size_t sizep; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; afi_t nh_afi; /* Set extended bit always to encode the attribute length as 2 bytes */ @@ -4411,8 +4411,8 @@ bgp_size_t bgp_packet_attribute(struct bgp *bgp, struct peer *peer, size_t bgp_packet_mpunreach_start(struct stream *s, afi_t afi, safi_t safi) { unsigned long attrlen_pnt; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; /* Set extended bit always to encode the attribute length as 2 bytes */ stream_putc(s, BGP_ATTR_FLAG_OPTIONAL | BGP_ATTR_FLAG_EXTLEN); diff --git a/bgpd/bgp_bmp.c b/bgpd/bgp_bmp.c index 7e9e527eb0..49f15a332d 100644 --- a/bgpd/bgp_bmp.c +++ b/bgpd/bgp_bmp.c @@ -761,8 +761,8 @@ static void bmp_eor(struct bmp *bmp, afi_t afi, safi_t safi, uint8_t flags) struct peer *peer; struct listnode *node; struct stream *s, *s2; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; frrtrace(3, frr_bgp, bmp_eor, afi, safi, flags); diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c index 6bdefd0e9b..c2562c75d3 100644 --- a/bgpd/bgp_open.c +++ b/bgpd/bgp_open.c @@ -1324,8 +1324,8 @@ static void bgp_open_capability_orf(struct stream *s, struct peer *peer, unsigned long orfp; unsigned long numberp; int number_of_orfs = 0; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; /* Convert AFI, SAFI to values for packet. */ bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi, &pkt_safi); @@ -1389,10 +1389,10 @@ static void bgp_peer_send_gr_capability(struct stream *s, struct peer *peer, bool ext_opt_params) { int len; - iana_afi_t pkt_afi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; afi_t afi; safi_t safi; - iana_safi_t pkt_safi; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; uint32_t restart_time; unsigned long capp = 0; unsigned long rcapp = 0; @@ -1472,10 +1472,10 @@ static void bgp_peer_send_llgr_capability(struct stream *s, struct peer *peer, bool ext_opt_params) { int len; - iana_afi_t pkt_afi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; afi_t afi; safi_t safi; - iana_safi_t pkt_safi; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; unsigned long capp = 0; unsigned long rcapp = 0; @@ -1523,10 +1523,10 @@ uint16_t bgp_open_capability(struct stream *s, struct peer *peer, { uint16_t len; unsigned long cp, capp, rcapp, eopl = 0; - iana_afi_t pkt_afi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; afi_t afi; safi_t safi; - iana_safi_t pkt_safi; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; as_t local_as; uint8_t afi_safi_count = 0; int adv_addpath_tx = 0; diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 4bb08404d6..b0fdcbda14 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -131,8 +131,8 @@ static struct stream *bgp_update_packet_eor(struct peer *peer, afi_t afi, safi_t safi) { struct stream *s; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; if (DISABLE_BGP_ANNOUNCE) return NULL; @@ -874,8 +874,8 @@ void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi, struct stream *s; struct bgp_filter *filter; int orf_refresh = 0; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; if (DISABLE_BGP_ANNOUNCE) return; @@ -978,8 +978,8 @@ void bgp_capability_send(struct peer *peer, afi_t afi, safi_t safi, int capability_code, int action) { struct stream *s; - iana_afi_t pkt_afi; - iana_safi_t pkt_safi; + iana_afi_t pkt_afi = IANA_AFI_IPV4; + iana_safi_t pkt_safi = IANA_SAFI_UNICAST; /* Convert AFI, SAFI to values for packet. */ bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi, &pkt_safi); -- 2.39.5