Let the kmemdup_array() take care about multiplication and possible
overflows.

Signed-off-by: Jinjie Ruan <ruanjin...@huawei.com>
---
 net/bridge/netfilter/ebtables.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index cbd0e3586c3f..3e67d4aff419 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -1256,7 +1256,7 @@ int ebt_register_table(struct net *net, const struct 
ebt_table *input_table,
                goto free_unlock;
        }
 
-       ops = kmemdup(template_ops, sizeof(*ops) * num_ops, GFP_KERNEL);
+       ops = kmemdup_array(template_ops, num_ops, sizeof(*ops), GFP_KERNEL);
        if (!ops) {
                ret = -ENOMEM;
                if (newinfo->nentries)
-- 
2.34.1


Reply via email to