]> git.puffer.fish Git - matthieu/frr.git/commitdiff
*: Replace 4/16 integers to IPV4_MAX_BYTELEN/IPV6_MAX_BYTELEN
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 1 Jul 2021 20:29:26 +0000 (23:29 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Thu, 1 Jul 2021 20:54:39 +0000 (23:54 +0300)
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
babeld/babel_interface.c
babeld/util.c
bgpd/bgp_encap_tlv.c
bgpd/bgp_evpn.c
lib/filter.c
pbrd/pbr_zebra.c
sharpd/sharp_vty.c
staticd/static_nht.c
zebra/zebra_nhg.c

index 41391c51ac9b99e2017addec8e3c29f247558dbd..43ed97cf17d2152b144f46da81d9cad5854567fa 100644 (file)
@@ -177,10 +177,11 @@ babel_interface_address_delete (ZAPI_CALLBACK_ARGS)
     if (prefix->family == AF_INET) {
         flush_interface_routes(ifc->ifp, 0);
         babel_ifp = babel_get_if_nfo(ifc->ifp);
-        if (babel_ifp->ipv4 != NULL
-            && memcmp(babel_ifp->ipv4, &prefix->u.prefix4, 4) == 0) {
-            free(babel_ifp->ipv4);
-            babel_ifp->ipv4 = NULL;
+       if (babel_ifp->ipv4 != NULL
+           && memcmp(babel_ifp->ipv4, &prefix->u.prefix4, IPV4_MAX_BYTELEN)
+                      == 0) {
+               free(babel_ifp->ipv4);
+               babel_ifp->ipv4 = NULL;
         }
     }
 
@@ -825,9 +826,11 @@ is_interface_ll_address(struct interface *ifp, const unsigned char *address)
         return 0;
 
     FOR_ALL_INTERFACES_ADDRESSES(ifp, connected, node) {
-        if(connected->address->family == AF_INET6 &&
-           memcmp(&connected->address->u.prefix6, address, 16) == 0)
-            return 1;
+           if (connected->address->family == AF_INET6
+               && memcmp(&connected->address->u.prefix6, address,
+                         IPV6_MAX_BYTELEN)
+                          == 0)
+                   return 1;
     }
 
     return 0;
@@ -941,13 +944,13 @@ static int
 babel_prefix_eq(struct prefix *prefix, unsigned char *p, int plen)
 {
     if(prefix->family == AF_INET6) {
-        if(prefix->prefixlen != plen ||
-           memcmp(&prefix->u.prefix6, p, 16) != 0)
-            return 0;
+           if (prefix->prefixlen != plen
+               || memcmp(&prefix->u.prefix6, p, IPV6_MAX_BYTELEN) != 0)
+                   return 0;
     } else if(prefix->family == AF_INET) {
-        if(plen < 96 || !v4mapped(p) || prefix->prefixlen != plen - 96 ||
-           memcmp(&prefix->u.prefix4, p + 12, 4) != 0)
-            return 0;
+           if (plen < 96 || !v4mapped(p) || prefix->prefixlen != plen - 96
+               || memcmp(&prefix->u.prefix4, p + 12, IPV4_MAX_BYTELEN) != 0)
+                   return 0;
     } else {
         return 0;
     }
@@ -959,31 +962,35 @@ static void
 show_babel_routes_sub(struct babel_route *route, struct vty *vty,
                       struct prefix *prefix)
 {
-    const unsigned char *nexthop =
-        memcmp(route->nexthop, route->neigh->address, 16) == 0 ?
-        NULL : route->nexthop;
-    char channels[100];
-
-    if(prefix && !babel_prefix_eq(prefix, route->src->prefix, route->src->plen))
-        return;
-
-    if(route->channels[0] == 0)
-        channels[0] = '\0';
-    else {
-        int k, j = 0;
-        snprintf(channels, sizeof(channels), " chan (");
-        j = strlen(channels);
-        for(k = 0; k < DIVERSITY_HOPS; k++) {
-            if(route->channels[k] == 0)
-                break;
-            if(k > 0)
-                channels[j++] = ',';
-            snprintf(channels + j, 100 - j, "%u", route->channels[k]);
-            j = strlen(channels);
-        }
-        snprintf(channels + j, 100 - j, ")");
-        if(k == 0)
-            channels[0] = '\0';
+       const unsigned char *nexthop =
+               memcmp(route->nexthop, route->neigh->address, IPV6_MAX_BYTELEN)
+                               == 0
+                       ? NULL
+                       : route->nexthop;
+       char channels[100];
+
+       if (prefix
+           && !babel_prefix_eq(prefix, route->src->prefix, route->src->plen))
+               return;
+
+       if (route->channels[0] == 0)
+               channels[0] = '\0';
+       else {
+               int k, j = 0;
+               snprintf(channels, sizeof(channels), " chan (");
+               j = strlen(channels);
+               for (k = 0; k < DIVERSITY_HOPS; k++) {
+                       if (route->channels[k] == 0)
+                               break;
+                       if (k > 0)
+                               channels[j++] = ',';
+                       snprintf(channels + j, 100 - j, "%u",
+                                route->channels[k]);
+                       j = strlen(channels);
+               }
+               snprintf(channels + j, 100 - j, ")");
+               if (k == 0)
+                       channels[0] = '\0';
     }
 
     vty_out (vty,
index be838fa438930ecf1d1e515466bfdfc6c6d34bed..e2db75996e2e684d60b71c817354a0272d57b277 100644 (file)
@@ -220,9 +220,9 @@ unsigned char *
 mask_prefix(unsigned char *restrict ret,
             const unsigned char *restrict prefix, unsigned char plen)
 {
-    if(plen >= 128) {
-        memcpy(ret, prefix, 16);
-        return ret;
+       if (plen >= IPV6_MAX_BITLEN) {
+               memcpy(ret, prefix, IPV6_MAX_BYTELEN);
+               return ret;
     }
 
     memset(ret, 0, 16);
@@ -309,9 +309,10 @@ parse_address(const char *address, unsigned char *addr_r, int *af_r)
 
     rc = inet_pton(AF_INET6, address, &ina6);
     if(rc > 0) {
-        memcpy(addr_r, &ina6, 16);
-        if(af_r) *af_r = AF_INET6;
-        return 0;
+           memcpy(addr_r, &ina6, IPV6_MAX_BYTELEN);
+           if (af_r)
+                   *af_r = AF_INET6;
+           return 0;
     }
 
     return -1;
@@ -413,13 +414,13 @@ uchar_to_inaddr(struct in_addr *dest, const unsigned char *src)
 void
 in6addr_to_uchar(unsigned char *dest, const struct in6_addr *src)
 {
-    memcpy(dest, src, 16);
+       memcpy(dest, src, IPV6_MAX_BYTELEN);
 }
 
 void
 uchar_to_in6addr(struct in6_addr *dest, const unsigned char *src)
 {
-    memcpy(dest, src, 16);
+       memcpy(dest, src, IPV6_MAX_BYTELEN);
 }
 
 int
index 964adec9b64a257e5dae978ac7c136e6362a8a31..fd429120e69575b1f168ea352f446592ee1d5c12 100644 (file)
@@ -212,12 +212,12 @@ subtlv_encode_remote_endpoint(struct bgp_tea_subtlv_remote_endpoint *st)
        new->length = total;
        p = new->value;
        if (st->family == AF_INET) {
-               memcpy(p, &(st->ip_address.v4.s_addr), 4);
-               p += 4;
+               memcpy(p, &(st->ip_address.v4.s_addr), IPV4_MAX_BYTELEN);
+               p += IPV4_MAX_BYTELEN;
        } else {
                assert(st->family == AF_INET6);
-               memcpy(p, &(st->ip_address.v6.s6_addr), 16);
-               p += 16;
+               memcpy(p, &(st->ip_address.v6.s6_addr), IPV6_MAX_BYTELEN);
+               p += IPV6_MAX_BYTELEN;
        }
        memcpy(p, &(st->as4), 4);
        return new;
@@ -577,10 +577,12 @@ subtlv_decode_remote_endpoint(struct bgp_attr_encap_subtlv *subtlv,
        }
        if (subtlv->length == 8) {
                st->family = AF_INET;
-               memcpy(&st->ip_address.v4.s_addr, subtlv->value, 4);
+               memcpy(&st->ip_address.v4.s_addr, subtlv->value,
+                      IPV4_MAX_BYTELEN);
        } else {
                st->family = AF_INET6;
-               memcpy(&(st->ip_address.v6.s6_addr), subtlv->value, 16);
+               memcpy(&(st->ip_address.v6.s6_addr), subtlv->value,
+                      IPV6_MAX_BYTELEN);
        }
        i = subtlv->length - 4;
        ptr_get_be32(subtlv->value + i, &st->as4);
index 5ef593b9c023caefeb8ad8992336197d2a86083d..c99f539c7b72ec6d9e157f610b0a12a22b7c61b5 100644 (file)
@@ -4114,10 +4114,11 @@ static int process_type5_route(struct peer *peer, afi_t afi, safi_t safi,
                gw_afi = AF_INET;
        } else {
                SET_IPADDR_V6(&p.prefix.prefix_addr.ip);
-               memcpy(&p.prefix.prefix_addr.ip.ipaddr_v6, pfx, 16);
-               pfx += 16;
-               memcpy(&evpn.gw_ip.ipv6, pfx, 16);
-               pfx += 16;
+               memcpy(&p.prefix.prefix_addr.ip.ipaddr_v6, pfx,
+                      IPV6_MAX_BYTELEN);
+               pfx += IPV6_MAX_BYTELEN;
+               memcpy(&evpn.gw_ip.ipv6, pfx, IPV6_MAX_BYTELEN);
+               pfx += IPV6_MAX_BYTELEN;
                gw_afi = AF_INET6;
        }
 
index b7a935d0768dbbd576b77f6343e1ec796aace32b..72a66d85ad7d073a323326fcbd35b7fc13cd8ad4 100644 (file)
@@ -108,10 +108,14 @@ static int filter_match_cisco(struct filter *mfilter, const struct prefix *p)
                masklen2ip(p->prefixlen, &mask);
                check_mask = mask.s_addr & ~filter->mask_mask.s_addr;
 
-               if (memcmp(&check_addr, &filter->addr.s_addr, 4) == 0
-                   && memcmp(&check_mask, &filter->mask.s_addr, 4) == 0)
+               if (memcmp(&check_addr, &filter->addr.s_addr, IPV4_MAX_BYTELEN)
+                           == 0
+                   && memcmp(&check_mask, &filter->mask.s_addr,
+                             IPV4_MAX_BYTELEN)
+                              == 0)
                        return 1;
-       } else if (memcmp(&check_addr, &filter->addr.s_addr, 4) == 0)
+       } else if (memcmp(&check_addr, &filter->addr.s_addr, IPV4_MAX_BYTELEN)
+                  == 0)
                return 1;
 
        return 0;
index a2eecbbf504074258858d95ce2b4f2c7fe321e83..fc5303c9d81ee01bb7f9b62ff752f3ddc9065e06 100644 (file)
@@ -286,11 +286,13 @@ static void route_add_helper(struct zapi_route *api, struct nexthop_group nhg,
                        api_nh->ifindex = nhop->ifindex;
                        break;
                case NEXTHOP_TYPE_IPV6:
-                       memcpy(&api_nh->gate.ipv6, &nhop->gate.ipv6, 16);
+                       memcpy(&api_nh->gate.ipv6, &nhop->gate.ipv6,
+                              IPV6_MAX_BYTELEN);
                        break;
                case NEXTHOP_TYPE_IPV6_IFINDEX:
                        api_nh->ifindex = nhop->ifindex;
-                       memcpy(&api_nh->gate.ipv6, &nhop->gate.ipv6, 16);
+                       memcpy(&api_nh->gate.ipv6, &nhop->gate.ipv6,
+                              IPV6_MAX_BYTELEN);
                        break;
                case NEXTHOP_TYPE_BLACKHOLE:
                        api_nh->bh_type = nhop->bh_type;
@@ -465,7 +467,7 @@ void pbr_send_rnh(struct nexthop *nhop, bool reg)
        case NEXTHOP_TYPE_IPV6:
        case NEXTHOP_TYPE_IPV6_IFINDEX:
                p.family = AF_INET6;
-               memcpy(&p.u.prefix6, &nhop->gate.ipv6, 16);
+               memcpy(&p.u.prefix6, &nhop->gate.ipv6, IPV6_MAX_BYTELEN);
                p.prefixlen = IPV6_MAX_BITLEN;
                if (IN6_IS_ADDR_LINKLOCAL(&nhop->gate.ipv6))
                        /*
index f8c46894ba5f4035cc404b4fff12746e1697a7af..b6581cd9e6185691a04592b30bd436bdd2e327bc 100644 (file)
@@ -98,7 +98,7 @@ DEFPY(watch_nexthop_v6, watch_nexthop_v6_cmd,
        if (n) {
                type_import = false;
                p.prefixlen = IPV6_MAX_BITLEN;
-               memcpy(&p.u.prefix6, &nhop, 16);
+               memcpy(&p.u.prefix6, &nhop, IPV6_MAX_BYTELEN);
                p.family = AF_INET6;
        } else {
                type_import = true;
index feb6e0f9935d7260f8892b70ad60d5095ae66cfa..d42c5c2777fa76006e1eeb836a252c145dd300c9 100644 (file)
@@ -52,7 +52,8 @@ static void static_nht_update_path(struct route_node *rn,
                        nh->nh_valid = !!nh_num;
 
                if (nhp->family == AF_INET6
-                   && memcmp(&nhp->u.prefix6, &nh->addr.ipv6, 16) == 0)
+                   && memcmp(&nhp->u.prefix6, &nh->addr.ipv6, IPV6_MAX_BYTELEN)
+                              == 0)
                        nh->nh_valid = !!nh_num;
 
                if (nh->state == STATIC_START)
index cfd4ccf817c2f9fbf9328a6cd6f78c128bbdc987..af86263a16b3e82230d2f3fc68a49d09d7456ecc 100644 (file)
@@ -2052,7 +2052,8 @@ static int nexthop_active(struct nexthop *nexthop, struct nhg_hash_entry *nhe,
            && ((top->family == AF_INET && top->prefixlen == IPV4_MAX_BITLEN
                 && nexthop->gate.ipv4.s_addr == top->u.prefix4.s_addr)
                || (top->family == AF_INET6 && top->prefixlen == IPV6_MAX_BITLEN
-                   && memcmp(&nexthop->gate.ipv6, &top->u.prefix6, 16)
+                   && memcmp(&nexthop->gate.ipv6, &top->u.prefix6,
+                             IPV6_MAX_BYTELEN)
                               == 0))) {
                if (IS_ZEBRA_DEBUG_RIB_DETAILED)
                        zlog_debug(