Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754125AbdF1AHs (ORCPT ); Tue, 27 Jun 2017 20:07:48 -0400 Received: from mail-it0-f43.google.com ([209.85.214.43]:38419 "EHLO mail-it0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753975AbdF1AHn (ORCPT ); Tue, 27 Jun 2017 20:07:43 -0400 MIME-Version: 1.0 In-Reply-To: <8f344463f47f40c462ad3b41ef1b0daee1ddf2d2.1493382464.git.geliangtang@gmail.com> References: <4db2a0ba17dc68d7bcfbd7d47b0eb22ad9a220c2.1493381463.git.geliangtang@gmail.com> <8f344463f47f40c462ad3b41ef1b0daee1ddf2d2.1493382464.git.geliangtang@gmail.com> From: Kees Cook Date: Tue, 27 Jun 2017 17:07:41 -0700 X-Google-Sender-Auth: XuHrFuv5saeeqsqGIhxZkO7alZk Message-ID: Subject: Re: [PATCH] pstore: use memdup_user To: Geliang Tang Cc: Anton Vorontsov , Colin Cross , Tony Luck , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1294 Lines: 50 On Fri, Apr 28, 2017 at 6:45 PM, Geliang Tang wrote: > Use memdup_user() helper instead of open-coding to simplify the code. > > Signed-off-by: Geliang Tang Thanks! Applied for -next. -Kees > --- > fs/pstore/platform.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c > index 43b3ca5..903e0fe 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -640,19 +640,16 @@ static int pstore_write_user_compat(struct pstore_record *record, > if (record->buf) > return -EINVAL; > > - record->buf = kmalloc(record->size, GFP_KERNEL); > - if (!record->buf) > - return -ENOMEM; > - > - if (unlikely(copy_from_user(record->buf, buf, record->size))) { > - ret = -EFAULT; > + record->buf = memdup_user(buf, record->size); > + if (unlikely(IS_ERR(record->buf))) { > + ret = PTR_ERR(record->buf); > goto out; > } > > ret = record->psi->write(record); > > -out: > kfree(record->buf); > +out: > record->buf = NULL; > > return unlikely(ret < 0) ? ret : record->size; > -- > 2.9.3 > -- Kees Cook Pixel Security