Let the kmemdup_array() take care about multiplication and possible overflows. Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx> --- 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