[ovs-dev] [PATCH] netdev-afxdp: Fix umem creation failure due to uninitialized config.

Ilya Maximets i.maximets at ovn.org
Wed Oct 9 14:17:58 UTC 2019

Later version of 'struct xsk_umem_config' contains additional field
'flags'.  OVS doesn't use that field passing uninitialized stack
memory to the 'xsk_umem__create()' call that could fail with
'Invalid argument' if 'flags' are non-zero or, even worse, create
umem with unexpected properties.

We need to clear the whole structure explicitly to avoid this kind
of issues.

Fixes: 0de1b425962d ("netdev-afxdp: add new netdev type for AF_XDP.")
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
 lib/netdev-afxdp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/netdev-afxdp.c b/lib/netdev-afxdp.c
index 6e0180327..4619245a8 100644
--- a/lib/netdev-afxdp.c
+++ b/lib/netdev-afxdp.c
@@ -168,6 +168,7 @@ xsk_configure_umem(void *buffer, uint64_t size, int xdpmode)
     umem = xzalloc(sizeof *umem);
+    memset(&uconfig, 0, sizeof uconfig);
     uconfig.fill_size = PROD_NUM_DESCS;
     uconfig.comp_size = CONS_NUM_DESCS;
     uconfig.frame_size = FRAME_SIZE;

More information about the dev mailing list