From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: [PATCH 12/17] s390/debug: Use memdup_user() rather than duplicating its implementation References: <566ABCD9.1060404@users.sourceforge.net> From: SF Markus Elfring Message-ID: Date: Sat, 3 Sep 2016 14:30:02 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-Archive: List-Post: To: linux-s390@vger.kernel.org, David Hildenbrand , Heiko Carstens , Joe Perches , Martin Schwidefsky Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall , Paolo Bonzini List-ID: From: Markus Elfring Date: Fri, 2 Sep 2016 08:45:26 +0200 Reuse existing functionality from memdup_user() instead of keeping duplicate source code. Signed-off-by: Markus Elfring --- arch/s390/kernel/debug.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index 4a12faf..a9fcf72 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c @@ -1162,13 +1162,9 @@ debug_get_user_string(const char __user *user_buf, size_t user_len) { char* buffer; - buffer = kmalloc(user_len + 1, GFP_KERNEL); - if (!buffer) - return ERR_PTR(-ENOMEM); - if (copy_from_user(buffer, user_buf, user_len) != 0) { - kfree(buffer); - return ERR_PTR(-EFAULT); - } + buffer = memdup_user(user_buf, user_len + 1); + if (IS_ERR(buffer)) + return PTR_ERR(buffer); /* got the string, now strip linefeed. */ if (buffer[user_len - 1] == '\n') buffer[user_len - 1] = 0; -- 2.9.3