From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754302AbcHSTVQ (ORCPT ); Fri, 19 Aug 2016 15:21:16 -0400 Received: from mout.web.de ([212.227.17.12]:54162 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750991AbcHSTVO (ORCPT ); Fri, 19 Aug 2016 15:21:14 -0400 Subject: [PATCH] VMCI: Use memdup_user() rather than duplicating its implementation To: linux-kernel@vger.kernel.org References: <566ABCD9.1060404@users.sourceforge.net> Cc: kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <77db177a-1062-3f46-738b-45c0a245153e@users.sourceforge.net> Date: Fri, 19 Aug 2016 21:21:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <566ABCD9.1060404@users.sourceforge.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:WrRc/omI4a5Hzq8wqDLCHOvHgxPacATjlFMeBeE791RdtGGC44s 2iajxuftLxzIpNk76c6pU6N4Jose+9fblyhvyiktNuhXbjc+zMp08X6yS2an2R8fdrEWeY5 oNCzkPJhA2DgY6u5lrJXxj9ZvufjOoJ5otkqqk/R9u1DupIHIxYn+toPyMO0Sn72zIb6SoR vxYVnkinILL4Rv5jOPqwQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:AJ5WCGytWAg=:RlvVIChyPq4Rc/Gh6HIVxn Pa5b69FZBaEfeEJBo/Xq0dZqfQ3Kg0e5TAgWcWPpPoEM6iMWA04frIp9rp/sRSxIRy+odC17M N/inSq7UjQ5yMruMGqCqniRWj04mY7tveVqHoD5yzdcqRXFYOBL8llxSxbsezsiHBQtjV7SeS 7Gn8BKWUKbc0qlzg60gv71Me3xwUED2gcYQe3ZqwIDL2MXJsH35NxlsnL1E2ewyvHIHKSExYM NlPltZV/VgTzqb/g4XPkLwLnqsrdZNWkDE5FRfl7x3kFbsAnJn0EAPDfXIB9pCsByM5BbElJE NTLT5Vpw85NUtNYjmJb42iTib6D1ZQfMbTE7V+weCOGTT1WOTBdSu2XWj9x5at0X1SvIxnrBB n54mvM+vut1TEnMJreeyYk9PNmoKnRUjjJWAFIewd9xnHv+n5kA7EsXkuvVm6k07LzOtY0Di0 Uh60BNAhg2xkIlHJnguDYra5iTxMUOXEYRb0E4SbT4nV19EzUe5QX9H2MauwAMR2teSXP2SGI 5fii8IPEtlP9Dq544BiGKC2xki6tNnT1IkPxBmnMPFlDLlagj1zs+kdskRPw5OkBOpyc+KXtc 2wPOEVILQ9NisQDX+/aWKMCXujgQzp/Wyk0cJVCse2dt2SmwVw5DhJzztfrXzvmAqU1Tk5oHh +R9wthiZiGmJELoeIoClFkTu3hy+SHuIElUnK6Jyp9/svFTllGhRdGHxrZ1KhYhQWyXI1GSz4 byEHgl+9X8oHgdlTUprOD/vttPWdG2xr1Drg4Cjk+gKQzWs8bpHPuF66jp59cIZmaW1Yj3vrk vIC9qE9 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Fri, 19 Aug 2016 21:12:41 +0200 Reuse existing functionality from memdup_user() instead of keeping duplicate source code. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/misc/vmw_vmci/vmci_host.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/misc/vmw_vmci/vmci_host.c b/drivers/misc/vmw_vmci/vmci_host.c index 9ec262a..0a20475 100644 --- a/drivers/misc/vmw_vmci/vmci_host.c +++ b/drivers/misc/vmw_vmci/vmci_host.c @@ -759,27 +759,16 @@ static int vmci_host_do_ctx_set_cpt_state(struct vmci_host_dev *vmci_host_dev, if (copy_from_user(&set_info, uptr, sizeof(set_info))) return -EFAULT; - cpt_buf = kmalloc(set_info.buf_size, GFP_KERNEL); - if (!cpt_buf) { - vmci_ioctl_err( - "cannot allocate memory to set cpt state (type=%d)\n", - set_info.cpt_type); - return -ENOMEM; - } - - if (copy_from_user(cpt_buf, (void __user *)(uintptr_t)set_info.cpt_buf, - set_info.buf_size)) { - retval = -EFAULT; - goto out; - } + cpt_buf = memdup_user((void __user *)(uintptr_t)set_info.cpt_buf, + set_info.buf_size); + if (IS_ERR(cpt_buf)) + return PTR_ERR(cpt_buf); cid = vmci_ctx_get_id(vmci_host_dev->context); set_info.result = vmci_ctx_set_chkpt_state(cid, set_info.cpt_type, set_info.buf_size, cpt_buf); retval = copy_to_user(uptr, &set_info, sizeof(set_info)) ? -EFAULT : 0; - -out: kfree(cpt_buf); return retval; } -- 2.9.3