]> git.puffer.fish Git - matthieu/frr.git/commitdiff
*: unify prefix copying
authorIgor Ryzhov <iryzhov@nfware.com>
Wed, 2 Jun 2021 17:03:52 +0000 (20:03 +0300)
committermergify-bot <noreply@mergify.io>
Sat, 24 Jul 2021 15:56:55 +0000 (15:56 +0000)
There are a few places in the code where we use PREFIX_COPY(_IPV4/IPV6)
macro to copy a prefix. Let's always use prefix_copy function for this.

This should fix CID 1482142 and 1504610.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit b08dcc3f3f0b128b4662f3be86eb53075e93ac9f)

bgpd/bgp_flowspec_util.c
bgpd/bgpd.c
eigrpd/eigrp_network.c
lib/prefix.h
zebra/connected.c

index b244c872580771b7ef5274149c6021c1d754ed06..1ffd8499c0d9fc640ca63409d3b598f0027a8e7d 100644 (file)
@@ -227,12 +227,8 @@ int bgp_flowspec_ip_address(enum bgp_flowspec_util_nlri_t type,
                                   BGP_FLOWSPEC_STRING_DISPLAY_MAX);
                break;
        case BGP_FLOWSPEC_CONVERT_TO_NON_OPAQUE:
-               if (prefix) {
-                       if (prefix_local.family == AF_INET)
-                               PREFIX_COPY_IPV4(prefix, &prefix_local);
-                       else
-                               PREFIX_COPY_IPV6(prefix, &prefix_local);
-               }
+               if (prefix)
+                       prefix_copy(prefix, &prefix_local);
                break;
        case BGP_FLOWSPEC_VALIDATE_ONLY:
        default:
index 597627b2f08c7107dd28759c8b7b6b8c5f1f04b3..d3f30781104b80e708a08eb5a3a86cce892c9fbc 100644 (file)
@@ -1526,7 +1526,7 @@ static int bgp_peer_conf_if_to_su_update_v4(struct peer *peer,
         */
        for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc)) {
                if (ifc->address && (ifc->address->family == AF_INET)) {
-                       PREFIX_COPY_IPV4(&p, CONNECTED_PREFIX(ifc));
+                       prefix_copy(&p, CONNECTED_PREFIX(ifc));
                        if (p.prefixlen == 30) {
                                peer->su.sa.sa_family = AF_INET;
                                addr = ntohl(p.u.prefix4.s_addr);
index 69dcc2025394af0efbf54910b2c2f053fe389b63..9a5fbc52b4da37d241c83367a30aa4d3e1242ad0 100644 (file)
@@ -219,7 +219,7 @@ int eigrp_network_set(struct eigrp *eigrp, struct prefix *p)
        }
 
        struct prefix *pref = prefix_new();
-       PREFIX_COPY_IPV4(pref, p);
+       prefix_copy(pref, p);
        rn->info = (void *)pref;
 
        /* Schedule Router ID Update. */
index d7ee1b8e4c336abb77e143d7bac6faa408436426..2b89b5ce9322abe897b2cadc7f14b67413891533 100644 (file)
@@ -476,11 +476,6 @@ extern void prefix_ipv4_free(struct prefix_ipv4 **p);
 extern int str2prefix_ipv4(const char *, struct prefix_ipv4 *);
 extern void apply_mask_ipv4(struct prefix_ipv4 *);
 
-#define PREFIX_COPY(DST, SRC)                                                  \
-       *((struct prefix *)(DST)) = *((const struct prefix *)(SRC))
-#define PREFIX_COPY_IPV4(DST, SRC)                                             \
-       *((struct prefix_ipv4 *)(DST)) = *((const struct prefix_ipv4 *)(SRC))
-
 extern int prefix_ipv4_any(const struct prefix_ipv4 *);
 extern void apply_classful_mask_ipv4(struct prefix_ipv4 *);
 
@@ -498,9 +493,6 @@ extern void prefix_ipv6_free(struct prefix_ipv6 **p);
 extern int str2prefix_ipv6(const char *, struct prefix_ipv6 *);
 extern void apply_mask_ipv6(struct prefix_ipv6 *);
 
-#define PREFIX_COPY_IPV6(DST, SRC)                                             \
-       *((struct prefix_ipv6 *)(DST)) = *((const struct prefix_ipv6 *)(SRC))
-
 extern int ip6_masklen(struct in6_addr);
 extern void masklen2ip6(const int, struct in6_addr *);
 
index d110ccf6dde002f7b43b41e55ed75ed92d5de922..dc7193eb4c9da62bd88ec8892fd88a9de297528d 100644 (file)
@@ -198,7 +198,7 @@ static void connected_update(struct interface *ifp, struct connected *ifc)
 void connected_up(struct interface *ifp, struct connected *ifc)
 {
        afi_t afi;
-       struct prefix p = {0};
+       struct prefix p;
        struct nexthop nh = {
                .type = NEXTHOP_TYPE_IFINDEX,
                .ifindex = ifp->ifindex,
@@ -225,7 +225,7 @@ void connected_up(struct interface *ifp, struct connected *ifc)
        /* Ensure 'down' flag is cleared */
        UNSET_FLAG(ifc->conf, ZEBRA_IFC_DOWN);
 
-       PREFIX_COPY(&p, CONNECTED_PREFIX(ifc));
+       prefix_copy(&p, CONNECTED_PREFIX(ifc));
 
        /* Apply mask to the network. */
        apply_mask(&p);
@@ -277,9 +277,9 @@ void connected_up(struct interface *ifp, struct connected *ifc)
         * resolve to the same network and mask
         */
        for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) {
-               struct prefix cp = {0};
+               struct prefix cp;
 
-               PREFIX_COPY(&cp, CONNECTED_PREFIX(c));
+               prefix_copy(&cp, CONNECTED_PREFIX(c));
                apply_mask(&cp);
 
                if (prefix_same(&cp, &p) &&
@@ -412,7 +412,7 @@ void connected_down(struct interface *ifp, struct connected *ifc)
                return;
        }
 
-       PREFIX_COPY(&p, CONNECTED_PREFIX(ifc));
+       prefix_copy(&p, CONNECTED_PREFIX(ifc));
 
        /* Apply mask to the network. */
        apply_mask(&p);
@@ -450,7 +450,7 @@ void connected_down(struct interface *ifp, struct connected *ifc)
        for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) {
                struct prefix cp;
 
-               PREFIX_COPY(&cp, CONNECTED_PREFIX(c));
+               prefix_copy(&cp, CONNECTED_PREFIX(c));
                apply_mask(&cp);
 
                if (prefix_same(&p, &cp) &&