From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756730AbcIXLJP (ORCPT ); Sat, 24 Sep 2016 07:09:15 -0400 Received: from mout.web.de ([212.227.17.12]:62648 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752171AbcIXLJM (ORCPT ); Sat, 24 Sep 2016 07:09:12 -0400 Subject: [PATCH 1/2] Input-evdev: Use kmalloc_array() in evdev_handle_get_val() To: linux-input@vger.kernel.org, Dmitry Torokhov , Henrik Rydberg References: <566ABCD9.1060404@users.sourceforge.net> <92cc52f5-c5e1-cafe-76f2-04e4ed997735@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <2a1f52e8-a502-1d4b-d9c9-e806cc6f246e@users.sourceforge.net> Date: Sat, 24 Sep 2016 13:08:56 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <92cc52f5-c5e1-cafe-76f2-04e4ed997735@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:O6FFuVN2fxQTnlZ4G0GQWpsKzK8Y3d4GVKLCRcXU1TxYt/n9wMj KCJLBTL/uFoZoWLLK8IJ95rEDVRx1QX5uulPxWAy8Jq+w3Y/XVd/RjyliafVjn14Q8rf/H8 XmfXYwmYH7LRdjDMasjjk+YM9kt4Vqgc5q+NrMtaj6L1Mizcy0ohIZTUTkMgomb+w7O7DTG U7P+IxkLCwxatb+Kb/+uA== X-UI-Out-Filterresults: notjunk:1;V01:K0:BCSfA6AqKw4=:LvrXq7XS8s2482J+aw4S0F gI0t4c0DK2Y1ZhDufb/LyksaPdR+8vGdWCYfwyZ7xRgnbXxYG6kEMWD7IVpbUBxaWIlWkoH2F IHm91Kh1/KX5apPGUs42XU6fyabbU05Xx8AlZcf/x2jBiX+G0z6XT6xYkgaUjKl+Y2KPTZQCJ b6i1HcwRihEoqCyQk5dx6SfKoytV0d/yA+kQVcSG8SNZ8f0X9b988MMrY6NRha/fNwznXFFIF zNs2WnGBtLldPAS5qhMagVKdkslRdqPe5wa5SeVv3U7wJdJhSfutUFcOn62FZHhlvM6lIHDwM f4fLbgDmXfrbA/CQDoiJEJewT0YJtQgR4cHHZcpkE38KGVzX8vp2fSHmXRQVTpDoHcGjdbx5+ 3+0rXuTMmGyP6n3YdxZfnTeCQvqTsf6mZIquewgRtdMxmImNV3lbrY1jK3WXx4ulOTzjCAr5X xzU2fPpM8iTJObVhslmRW1t7W5NyaIxDrJLDJBYbD5TYDRuyrZvI9jGs85UVcROmYqZH+3ug+ ni69M5NNAfmFl/v0lmPmcRlPAMW8mYY3OfsiyOtprx/IX6PYjFc8pXiFw+lkD+gUTSexAdfYN h7DhHQt/r5w6Mr+fNUE3o92ZvhBPU3rjrCApBbxSy3iUCc/AvBnoKAteeDkw3LbWfqFj7/PDt X/agydFLoTz7Rq9Raxm5Gk+Td1kVx0fmIrvUAcYCBy7f5/KeYNyitPN9as2nrd/AtH80OEh93 F1mau0P0a1w2VixJT3Le4QbZ0t1si9Moj+VViSfXiLMSwSJlRBE7f3PGEmRsY0OK8TetqxOW3 izRzLWJ Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Sat, 24 Sep 2016 12:42:45 +0200 * A multiplication for the size determination of a memory allocation indicated that an array data structure should be processed. Thus use the corresponding function "kmalloc_array". This issue was detected by using the Coccinelle software. * Replace the specification of a data type by a pointer dereference to make the corresponding size determination a bit safer according to the Linux coding style convention. * Delete the local variable "len" which became unnecessary with this refactoring. Signed-off-by: Markus Elfring --- drivers/input/evdev.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index e9ae3d5..83fcfd6 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c @@ -919,18 +919,14 @@ static int evdev_handle_get_val(struct evdev_client *client, { int ret; unsigned long *mem; - size_t len; - len = BITS_TO_LONGS(maxbit) * sizeof(unsigned long); - mem = kmalloc(len, GFP_KERNEL); + mem = kmalloc_array(BITS_TO_LONGS(maxbit), sizeof(*mem), GFP_KERNEL); if (!mem) return -ENOMEM; spin_lock_irq(&dev->event_lock); spin_lock(&client->buffer_lock); - - memcpy(mem, bits, len); - + memcpy(mem, bits, sizeof(*mem) * BITS_TO_LONGS(maxbit)); spin_unlock(&dev->event_lock); __evdev_flush_queue(client, type); -- 2.10.0