]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: remove all instances of strncpy 3865/head
authorQuentin Young <qlyoung@cumulusnetworks.com>
Mon, 25 Feb 2019 17:37:34 +0000 (17:37 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Mon, 25 Feb 2019 17:52:37 +0000 (17:52 +0000)
We have strlcpy.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
zebra/if_ioctl.c
zebra/if_ioctl_solaris.c
zebra/ioctl.c
zebra/ioctl_solaris.c
zebra/zebra_vxlan.c

index debc151d752dd770beb6b4537b9438a3e6c95e37..8bec2563553252db71cb11385471b5321e63fe2e 100644 (file)
@@ -147,7 +147,7 @@ static int if_get_hwaddr(struct interface *ifp)
        struct ifreq ifreq;
        int i;
 
-       strncpy(ifreq.ifr_name, ifp->name, IFNAMSIZ);
+       strlcpy(ifreq.ifr_name, ifp->name, sizeof(ifreq.ifr_name));
        ifreq.ifr_addr.sa_family = AF_INET;
 
        /* Fetch Hardware address if available. */
index 2c29930c3f661d2ab80b6141d63e9b682bc05dbf..8b539a90499532be23337701a1d198098a7160c2 100644 (file)
@@ -247,7 +247,8 @@ static int if_get_addr(struct interface *ifp, struct sockaddr *addr,
         * We need to use the logical interface name / label, if we've been
         * given one, in order to get the right address
         */
-       strncpy(lifreq.lifr_name, (label ? label : ifp->name), IFNAMSIZ);
+       strlcpy(lifreq.lifr_name, (label ? label : ifp->name),
+               sizeof(lifreq.lifr_name));
 
        /* Interface's address. */
        memcpy(&lifreq.lifr_addr, addr, ADDRLEN(addr));
index ebe1edcaef0a77b11ce5cf394269e254a38d5195..9499c731ef4cccfca5c823cbb8c2e9c16eb1758e 100644 (file)
@@ -213,7 +213,7 @@ int if_set_prefix(struct interface *ifp, struct connected *ifc)
        rib_lookup_and_pushup(p, ifp->vrf_id);
 
        memset(&addreq, 0, sizeof addreq);
-       strncpy((char *)&addreq.ifra_name, ifp->name, sizeof addreq.ifra_name);
+       strlcpy(addreq.ifra_name, ifp->name, sizeof(addreq.ifra_name));
 
        memset(&addr, 0, sizeof(struct sockaddr_in));
        addr.sin_addr = p->prefix;
@@ -267,7 +267,7 @@ int if_unset_prefix(struct interface *ifp, struct connected *ifc)
        p = (struct prefix_ipv4 *)ifc->address;
 
        memset(&addreq, 0, sizeof addreq);
-       strncpy((char *)&addreq.ifra_name, ifp->name, sizeof addreq.ifra_name);
+       strlcpy(addreq.ifra_name, ifp->name, sizeof(addreq.ifra_name));
 
        memset(&addr, 0, sizeof(struct sockaddr_in));
        addr.sin_addr = p->prefix;
@@ -412,7 +412,7 @@ void if_get_flags(struct interface *ifp)
 
        if (CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)) {
                (void)memset(&ifmr, 0, sizeof(ifmr));
-               strncpy(ifmr.ifm_name, ifp->name, IFNAMSIZ);
+               strlcpy(ifmr.ifm_name, ifp->name, sizeof(ifmr.ifm_name));
 
                /* Seems not all interfaces implement this ioctl */
                if (if_ioctl(SIOCGIFMEDIA, (caddr_t)&ifmr) == -1 &&
@@ -514,7 +514,7 @@ int if_prefix_add_ipv6(struct interface *ifp, struct connected *ifc)
        p = (struct prefix_ipv6 *)ifc->address;
 
        memset(&addreq, 0, sizeof addreq);
-       strncpy((char *)&addreq.ifra_name, ifp->name, sizeof addreq.ifra_name);
+       strlcpy(addreq.ifra_name, ifp->name, sizeof(addreq.ifra_name));
 
        memset(&addr, 0, sizeof(struct sockaddr_in6));
        addr.sin6_addr = p->prefix;
@@ -557,7 +557,7 @@ int if_prefix_delete_ipv6(struct interface *ifp, struct connected *ifc)
        p = (struct prefix_ipv6 *)ifc->address;
 
        memset(&addreq, 0, sizeof addreq);
-       strncpy((char *)&addreq.ifra_name, ifp->name, sizeof addreq.ifra_name);
+       strlcpy(addreq.ifra_name, ifp->name, sizeof(addreq.ifra_name));
 
        memset(&addr, 0, sizeof(struct sockaddr_in6));
        addr.sin6_addr = p->prefix;
index fc554219bcf989d68d0d242f42236b7e7f35b591..c523ee983d32f3e8bb5fe025beb8d748a9bf2181 100644 (file)
@@ -44,7 +44,7 @@ extern struct zebra_privs_t zserv_privs;
 /* clear and set interface name string */
 void lifreq_set_name(struct lifreq *lifreq, const char *ifname)
 {
-       strncpy(lifreq->lifr_name, ifname, IFNAMSIZ);
+       strlcpy(lifreq->lifr_name, ifname, sizeof(lifreq->lifr_name));
 }
 
 int vrf_if_ioctl(unsigned long request, caddr_t buffer, vrf_id_t vrf_id)
@@ -199,7 +199,7 @@ int if_set_prefix(struct interface *ifp, struct connected *ifc)
 
        ifaddr = *p;
 
-       strncpy(ifreq.ifr_name, ifp->name, IFNAMSIZ);
+       strlcpy(ifreq.ifr_name, ifp->name, sizeof(ifreq.ifr_name));
 
        addr.sin_addr = p->prefix;
        addr.sin_family = p->family;
@@ -250,7 +250,7 @@ int if_unset_prefix(struct interface *ifp, struct connected *ifc)
 
        p = (struct prefix_ipv4 *)ifc->address;
 
-       strncpy(ifreq.ifr_name, ifp->name, IFNAMSIZ);
+       strlcpy(ifreq.ifr_name, ifp->name, sizeof(ifreq.ifr_name));
 
        memset(&addr, 0, sizeof(struct sockaddr_in));
        addr.sin_family = p->family;
index 560cd89abd781dde7fbaa1d3890d6855c232df92..a4b9cc5d88d49851872354c686faeb47fe83119b 100644 (file)
@@ -767,8 +767,7 @@ static void zvni_print_neigh(zebra_neigh_t *n, void *ctxt, json_object *json)
                                                n->detect_start_time.tv_sec);
                                char tmp_buf[30];
 
-                               memset(tmp_buf, 0, 30);
-                               strncpy(tmp_buf, buf, strlen(buf) - 1);
+                               strlcpy(tmp_buf, buf, sizeof(tmp_buf));
                                vty_out(vty,
                                        " Duplicate detection started at %s, detection count %u\n",
                                        tmp_buf, n->dad_count);
@@ -1148,7 +1147,7 @@ static void zvni_print_mac(zebra_mac_t *mac, void *ctxt, json_object *json)
        struct vty *vty;
        zebra_neigh_t *n = NULL;
        struct listnode *node = NULL;
-       char buf1[20];
+       char buf1[ETHER_ADDR_STRLEN];
        char buf2[INET6_ADDRSTRLEN];
        struct zebra_vrf *zvrf;
        struct timeval detect_start_time = {0, 0};
@@ -1289,8 +1288,7 @@ static void zvni_print_mac(zebra_mac_t *mac, void *ctxt, json_object *json)
                                                mac->detect_start_time.tv_sec);
                                char tmp_buf[30];
 
-                               memset(tmp_buf, 0, 30);
-                               strncpy(tmp_buf, buf, strlen(buf) - 1);
+                               strlcpy(tmp_buf, buf, sizeof(tmp_buf));
                                vty_out(vty,
                                        " Duplicate detection started at %s, detection count %u\n",
                                        tmp_buf, mac->dad_count);
@@ -1323,7 +1321,7 @@ static void zvni_print_mac_hash(struct hash_backet *backet, void *ctxt)
        struct vty *vty;
        json_object *json_mac_hdr = NULL, *json_mac = NULL;
        zebra_mac_t *mac;
-       char buf1[20];
+       char buf1[ETHER_ADDR_STRLEN];
        struct mac_walk_ctx *wctx = ctxt;
 
        vty = wctx->vty;
@@ -1445,7 +1443,7 @@ static void zvni_print_mac_hash_detail(struct hash_backet *backet, void *ctxt)
        json_object *json_mac_hdr = NULL;
        zebra_mac_t *mac;
        struct mac_walk_ctx *wctx = ctxt;
-       char buf1[20];
+       char buf1[ETHER_ADDR_STRLEN];
 
        vty = wctx->vty;
        json_mac_hdr = wctx->json;