[dpdk-dev,v2,07/18] drivers/net/nfp: don't memcpy out of source range
Checks
Commit Message
/home/agreen/projects/dpdk/drivers/net/nfp/nfp_net.c:669:2:
error: ‘memcpy’ forming offset [5, 6] is out of the bounds
[0, 4] of object ‘tmp’ with type ‘uint32_t’ {aka ‘unsigned
int’} [-Werror=array-bounds] memcpy(&hw->mac_addr[0],
&tmp, sizeof(struct ether_addr));
Signed-off-by: Andy Green <andy@warmcat.com>
---
drivers/net/nfp/nfp_net.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Wed, May 9, 2018 at 2:31 AM, Andy Green <andy@warmcat.com> wrote:
> /home/agreen/projects/dpdk/drivers/net/nfp/nfp_net.c:669:2:
> error: ‘memcpy’ forming offset [5, 6] is out of the bounds
> [0, 4] of object ‘tmp’ with type ‘uint32_t’ {aka ‘unsigned
> int’} [-Werror=array-bounds] memcpy(&hw->mac_addr[0],
> &tmp, sizeof(struct ether_addr));
>
> Signed-off-by: Andy Green <andy@warmcat.com>
> ---
> drivers/net/nfp/nfp_net.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
> index 048324ec9..199aac40b 100644
> --- a/drivers/net/nfp/nfp_net.c
> +++ b/drivers/net/nfp/nfp_net.c
> @@ -666,7 +666,7 @@ nfp_net_vf_read_mac(struct nfp_net_hw *hw)
> uint32_t tmp;
>
> tmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR));
> - memcpy(&hw->mac_addr[0], &tmp, sizeof(struct ether_addr));
> + memcpy(&hw->mac_addr[0], &tmp, 4);
>
> tmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR + 4));
> memcpy(&hw->mac_addr[4], &tmp, 2);
>
>
Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Tested-by: Alejandro Lucero <alejandro.lucero@netronome.com>
@@ -666,7 +666,7 @@ nfp_net_vf_read_mac(struct nfp_net_hw *hw)
uint32_t tmp;
tmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR));
- memcpy(&hw->mac_addr[0], &tmp, sizeof(struct ether_addr));
+ memcpy(&hw->mac_addr[0], &tmp, 4);
tmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR + 4));
memcpy(&hw->mac_addr[4], &tmp, 2);