openvswitch: Use kmalloc_size_roundup() to match ksize() usage
authorKees Cook <keescook@chromium.org>
Tue, 18 Oct 2022 09:06:33 +0000 (02:06 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 20 Oct 2022 00:05:52 +0000 (17:05 -0700)
Round up allocations with kmalloc_size_roundup() so that openvswitch's
use of ksize() is always accurate and no special handling of the memory
is needed by KASAN, UBSAN_BOUNDS, nor FORTIFY_SOURCE.

Cc: Pravin B Shelar <pshelar@ovn.org>
Cc: dev@openvswitch.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20221018090628.never.537-kees@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/openvswitch/flow_netlink.c

index 4a07ab094a84edab0811c2839ec5adc712d7cea8..ead5418c126e37e26bc7ddeed2f815d6642cf49d 100644 (file)
@@ -2309,7 +2309,7 @@ static struct sw_flow_actions *nla_alloc_flow_actions(int size)
 
        WARN_ON_ONCE(size > MAX_ACTIONS_BUFSIZE);
 
-       sfa = kmalloc(sizeof(*sfa) + size, GFP_KERNEL);
+       sfa = kmalloc(kmalloc_size_roundup(sizeof(*sfa) + size), GFP_KERNEL);
        if (!sfa)
                return ERR_PTR(-ENOMEM);