Re: [PATCH net-next 1/2] net: vxlan: enable local address bind for vxlan sockets

From: kernel test robot
Date: Sat Feb 24 2024 - 00:58:53 EST


Hi Richard,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url: https://github.com/intel-lab-lkp/linux/commits/Richard-Gobert/net-vxlan-enable-local-address-bind-for-vxlan-sockets/20240223-045600
base: net-next/main
patch link: https://lore.kernel.org/r/a4cd1adb-74d4-4eea-9f74-0d0ac3d79e44%40gmail.com
patch subject: [PATCH net-next 1/2] net: vxlan: enable local address bind for vxlan sockets
config: x86_64-randconfig-122-20240224 (https://download.01.org/0day-ci/archive/20240224/202402241309.eGUSV2aI-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240224/202402241309.eGUSV2aI-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402241309.eGUSV2aI-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> drivers/net/vxlan/vxlan_core.c:3498:20: error: no member named 'local_ip6' in 'struct udp_port_cfg'
3498 | memcpy(&udp_conf.local_ip6.s6_addr32,
| ~~~~~~~~ ^
include/linux/fortify-string.h:639:17: note: expanded from macro 'memcpy'
639 | __struct_size(p), __struct_size(q), \
| ^
include/linux/compiler_types.h:358:56: note: expanded from macro '__struct_size'
358 | #define __struct_size(p) __builtin_dynamic_object_size(p, 0)
| ^
include/linux/fortify-string.h:582:27: note: expanded from macro '__fortify_memcpy_chk'
582 | const size_t __p_size = (p_size); \
| ^~~~~~
>> drivers/net/vxlan/vxlan_core.c:3498:20: error: no member named 'local_ip6' in 'struct udp_port_cfg'
3498 | memcpy(&udp_conf.local_ip6.s6_addr32,
| ~~~~~~~~ ^
include/linux/fortify-string.h:640:17: note: expanded from macro 'memcpy'
640 | __member_size(p), __member_size(q), \
| ^
include/linux/compiler_types.h:359:56: note: expanded from macro '__member_size'
359 | #define __member_size(p) __builtin_dynamic_object_size(p, 1)
| ^
include/linux/fortify-string.h:584:33: note: expanded from macro '__fortify_memcpy_chk'
584 | const size_t __p_size_field = (p_size_field); \
| ^~~~~~~~~~~~
>> drivers/net/vxlan/vxlan_core.c:3498:20: error: no member named 'local_ip6' in 'struct udp_port_cfg'
3498 | memcpy(&udp_conf.local_ip6.s6_addr32,
| ~~~~~~~~ ^
include/linux/fortify-string.h:638:47: note: expanded from macro 'memcpy'
638 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \
| ^
include/linux/fortify-string.h:593:20: note: expanded from macro '__fortify_memcpy_chk'
593 | __underlying_##op(p, q, __fortify_size); \
| ^
3 errors generated.


vim +3498 drivers/net/vxlan/vxlan_core.c

3482
3483 static struct socket *vxlan_create_sock(struct net *net, bool ipv6, __be16 port,
3484 u32 flags, int ifindex,
3485 union vxlan_addr addr)
3486 {
3487 struct socket *sock;
3488 struct udp_port_cfg udp_conf;
3489 int err;
3490
3491 memset(&udp_conf, 0, sizeof(udp_conf));
3492
3493 if (ipv6) {
3494 udp_conf.family = AF_INET6;
3495 udp_conf.use_udp6_rx_checksums =
3496 !(flags & VXLAN_F_UDP_ZERO_CSUM6_RX);
3497 udp_conf.ipv6_v6only = 1;
> 3498 memcpy(&udp_conf.local_ip6.s6_addr32,
3499 &addr.sin6.sin6_addr.s6_addr32,
3500 sizeof(addr.sin6.sin6_addr.s6_addr32));
3501 } else {
3502 udp_conf.family = AF_INET;
3503 udp_conf.local_ip.s_addr = addr.sin.sin_addr.s_addr;
3504 memcpy(&udp_conf.local_ip.s_addr,
3505 &addr.sin.sin_addr.s_addr,
3506 sizeof(addr.sin.sin_addr.s_addr));
3507 }
3508
3509 udp_conf.local_udp_port = port;
3510 udp_conf.bind_ifindex = ifindex;
3511
3512 /* Open UDP socket */
3513 err = udp_sock_create(net, &udp_conf, &sock);
3514 if (err < 0)
3515 return ERR_PTR(err);
3516
3517 udp_allow_gso(sock->sk);
3518 return sock;
3519 }
3520

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki