]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Convert peer_af_flag_check() to bool
authorDonatas Abraitis <donatas@opensourcerouting.org>
Thu, 23 Feb 2023 20:54:12 +0000 (22:54 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Fri, 24 Feb 2023 14:29:24 +0000 (14:29 +0000)
Since we increased peer->af_flags from uint32_t to uint64_t,
peer_af_flag_check() was historically returning integer, and not bool
as should be.

The bug was that if we have af_flags higher than uint32_t it will never
returned a right value.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 2c722516c3b8cf3fe63853ed8cae2d518ec62f59)

bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h

index d837601f3264dbabc80838a25de0853230cf7837..3acd72f21008d5c30cf11067d290f1d892977a89 100644 (file)
@@ -16912,7 +16912,7 @@ static bool peergroup_af_flag_check(struct peer *peer, afi_t afi, safi_t safi,
                if (CHECK_FLAG(peer->af_flags_invert[afi][safi], flag))
                        return !peer_af_flag_check(peer, afi, safi, flag);
                else
-                       return !!peer_af_flag_check(peer, afi, safi, flag);
+                       return peer_af_flag_check(peer, afi, safi, flag);
        }
 
        return !!CHECK_FLAG(peer->af_flags_override[afi][safi], flag);
index a24c75d0a5caf4dd477eb99c24e797b3820707a8..0610ff4f1ca90e34a600114ee6f91b135ce29a37 100644 (file)
@@ -980,9 +980,10 @@ void peer_flag_inherit(struct peer *peer, uint64_t flag)
                COND_FLAG(peer->flags, flag, group_val);
 }
 
-int peer_af_flag_check(struct peer *peer, afi_t afi, safi_t safi, uint32_t flag)
+bool peer_af_flag_check(struct peer *peer, afi_t afi, safi_t safi,
+                       uint64_t flag)
 {
-       return CHECK_FLAG(peer->af_flags[afi][safi], flag);
+       return !!CHECK_FLAG(peer->af_flags[afi][safi], flag);
 }
 
 void peer_af_flag_inherit(struct peer *peer, afi_t afi, safi_t safi,
index 4c4c81f997a0e18a68f517499c7d70365bbcc78e..aff3a99bbc64b2240f809f6fc6b7bb549a5f7896 100644 (file)
@@ -2227,7 +2227,8 @@ extern int peer_af_flag_set(struct peer *peer, afi_t afi, safi_t safi,
                            uint64_t flag);
 extern int peer_af_flag_unset(struct peer *peer, afi_t afi, safi_t safi,
                              uint64_t flag);
-extern int peer_af_flag_check(struct peer *, afi_t, safi_t, uint32_t);
+extern bool peer_af_flag_check(struct peer *peer, afi_t afi, safi_t safi,
+                              uint64_t flag);
 extern void peer_af_flag_inherit(struct peer *peer, afi_t afi, safi_t safi,
                                 uint64_t flag);
 extern void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,