On Tue, May 31, 2022 at 08:13:04AM +0000, Ke Zhang wrote:
> The warning info:
> warning: passing argument 1 of ‘memcpy’ discards ‘const’
> qualifier from pointer target type
> 
> Compulsory type conversion to clear compile warning.
> 
> Signed-off-by: Ke Zhang <ke1x.zh...@intel.com>
> ---
>  kernel/linux/kni/kni_misc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
> index 780187d8bf..6f9dab4732 100644
> --- a/kernel/linux/kni/kni_misc.c
> +++ b/kernel/linux/kni/kni_misc.c
> @@ -403,10 +403,10 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
>  
>       /* if user has provided a valid mac address */
>       if (is_valid_ether_addr(dev_info.mac_addr))
> -             memcpy(net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
> +             memcpy((unsigned char *)net_dev->dev_addr, dev_info.mac_addr, 
> ETH_ALEN);
>       else
>               /* Generate random MAC address. */
> -             eth_random_addr(net_dev->dev_addr);
> +             eth_random_addr((uint8_t *)net_dev->dev_addr);
>  
>       if (dev_info.mtu)
>               net_dev->mtu = dev_info.mtu;

+Stephen H on CC, for his advice

This fix seems wrong to do. Given that it's a pointer to const char* rather
than an actual array in the structure, is a better fix not to point the
pointer to a new area of memory rather than trying to overwrite the old
one?

/Bruce

Reply via email to