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

Signed-off-by: Jinjie Ruan <ruanjin...@huawei.com>
---
 net/nfc/core.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/net/nfc/core.c b/net/nfc/core.c
index e58dc6405054..cbc2f718aece 100644
--- a/net/nfc/core.c
+++ b/net/nfc/core.c
@@ -790,9 +790,8 @@ int nfc_targets_found(struct nfc_dev *dev,
        dev->targets = NULL;
 
        if (targets) {
-               dev->targets = kmemdup(targets,
-                                      n_targets * sizeof(struct nfc_target),
-                                      GFP_ATOMIC);
+               dev->targets = kmemdup_array(targets, n_targets,
+                                            sizeof(struct nfc_target), 
GFP_ATOMIC);
 
                if (!dev->targets) {
                        dev->n_targets = 0;
-- 
2.34.1


Reply via email to