]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Ensure pkt_afi and pkt_safi are not used uninited in some cases
authorDonald Sharp <sharpd@nvidia.com>
Wed, 27 Apr 2022 11:57:41 +0000 (07:57 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 27 Apr 2022 12:06:22 +0000 (08:06 -0400)
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 <sharpd@nvidia.com>
bgpd/bgp_attr.c
bgpd/bgp_bmp.c
bgpd/bgp_open.c
bgpd/bgp_packet.c

index 118931a4dfba432691715e7a0b8eaff52ce78ef9..f45362f81164e16409f725078429c081ce20f495 100644 (file)
@@ -3596,8 +3596,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 */
@@ -4404,8 +4404,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);
index 48d3706ec500d8b133e20d654a3a9798143c52e6..47922985d96af68bfd3c228d639a482f8b722c77 100644 (file)
@@ -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);
 
index 6bdefd0e9b7e3ae6fd3b4635d587b27f433dfb13..c2562c75d3fc150d59b72788c8550b0c83adb0bc 100644 (file)
@@ -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;
index b0d852ee63a958a889624bfab78f16cfca6d423b..5ed888f48631df3f43281d903b7f0fa0fc26b34e 100644 (file)
@@ -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;
@@ -869,8 +869,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;
@@ -976,8 +976,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);