net/tap: fix memcpy with incorrect size
authorPavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Fri, 6 Apr 2018 11:30:31 +0000 (17:00 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 13 Apr 2018 22:40:21 +0000 (00:40 +0200)
Fix incorrect sizeof operation being used for getting mac addr size.

Found while compiling with arm64 clang.
drivers/net/tap/rte_eth_tap.c:1410:40: error: argument to 'sizeof' in
    'memcpy' call is the same pointer type 'struct ether_addr *' as the
    destination; expected 'struct ether_addr' or an explicit length
    [-Werror,-Wsizeof-pointer-memaccess]
       rte_memcpy(&pmd->eth_addr, mac_addr, sizeof(mac_addr));
                  ~~~~~~~~~~~~~~            ^~~~~~~~~~~~~~~~

Fixes: bcab6c1d27fa ("net/tap: allow user MAC to be passed as args")
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
drivers/net/tap/rte_eth_tap.c

index ed6d7380e213b87f6ef3954ce9d2ab4c5975efee..0a1b4ccb4ffa6232c869a5762f5b2f32274dfc0f 100644 (file)
@@ -1407,7 +1407,7 @@ eth_dev_tap_create(struct rte_vdev_device *vdev, char *tap_name,
        if (is_zero_ether_addr(mac_addr))
                eth_random_addr((uint8_t *)&pmd->eth_addr);
        else
-               rte_memcpy(&pmd->eth_addr, mac_addr, sizeof(mac_addr));
+               rte_memcpy(&pmd->eth_addr, mac_addr, sizeof(*mac_addr));
 
        /* Immediately create the netdevice (this will create the 1st queue). */
        /* rx queue */