From patchwork Sat May 6 15:42:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 759327 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3wKtMf2YH9z9s7g for ; Sun, 7 May 2017 01:43:26 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="X1ehYosJ"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755204AbdEFPnS (ORCPT ); Sat, 6 May 2017 11:43:18 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:34288 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754921AbdEFPnJ (ORCPT ); Sat, 6 May 2017 11:43:09 -0400 Received: by mail-pg0-f66.google.com with SMTP id u187so4584170pgb.1; Sat, 06 May 2017 08:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iyQY25J1L/PpsHNmaD4N7IORqrrPyG6+8mgbJBOFIv8=; b=X1ehYosJjpIa7oYYmB9iy9BNd5b9j6U0zRuVOmNFSDN9NnmpubjjxjiEW84cLmfX7p fHf4p7YsxF5VWgpaSuN0yuivenWkqvHVi0CF6ZDLAnARuJboZCFr3t55x5pJNAjBBXx4 uwlkAXT6YjxMy59osOa1iBPexkzw62tMVRsSVLGfAP8lL/37O46HBcY9owfvGbEmlgX1 8ENL0qnp30sEzfJyRQMw0TufIw9rHNndt7KM96fNSP1sJkVt0NqGu0bdbRqOwxAPJW8h ZjJTxkKl34ZVPB1HOlnClHGwsf1UTdvvxAGI9/gZ+RuhTVGyRY1pFlRV4EQbRjZKdm+4 tx/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iyQY25J1L/PpsHNmaD4N7IORqrrPyG6+8mgbJBOFIv8=; b=qm8aAPQfYni1myOF548NrB2ebeU311glMPaSHl0W1DwnHmbB8yn74vSf1MoUe9kheW QYiYruNXykBBuKU7sRJ1VSlsaQVuchxLo0aaBdrekTTwzGUzEtrtYzTRefxNXx5bJCzx xxDQinVwqxOu/knCTo0EzE/y5mhnfI7GDHSPLBMX3lAwTlpvTYGtKcy2YY76CVCXcVTT 1fgEnUQjLq8XVrEVgle1p5C9bKTgy/0iKsS/56SqkA0STLCGqepZPvBwOYmUrSRCil5s BLzBc2vpoe11NQIbE08/GuSa66PjZKnyrJdI1ZreXb3GlT+N5mLdZPTu27HFOsE6hcEb ILqg== X-Gm-Message-State: AN3rC/4RTmpRKLITK6/pBrqaxL1zHXQ3uJSxL4qhK1E9I91WEOpZI8i5 1uIutlFid8jZmg== X-Received: by 10.99.147.5 with SMTP id b5mr9533891pge.218.1494085383801; Sat, 06 May 2017 08:43:03 -0700 (PDT) Received: from localhost (li409-196.members.linode.com. [106.187.89.196]) by smtp.gmail.com with ESMTPSA id x198sm10906542pgx.28.2017.05.06.08.43.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 06 May 2017 08:43:03 -0700 (PDT) From: Geliang Tang To: Steffen Klassert , Herbert Xu , "David S. Miller" Cc: Geliang Tang , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] xfrm: use memdup_user Date: Sat, 6 May 2017 23:42:21 +0800 Message-Id: <7d89949ab688323cf05273b7dfaca94348118594.1493780592.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use memdup_user() helper instead of open-coding to simplify the code. Signed-off-by: Geliang Tang --- net/xfrm/xfrm_state.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index fc3c5aa..5780cda 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -2023,13 +2023,9 @@ int xfrm_user_policy(struct sock *sk, int optname, u8 __user *optval, int optlen if (optlen <= 0 || optlen > PAGE_SIZE) return -EMSGSIZE; - data = kmalloc(optlen, GFP_KERNEL); - if (!data) - return -ENOMEM; - - err = -EFAULT; - if (copy_from_user(data, optval, optlen)) - goto out; + data = memdup_user(optval, optlen); + if (IS_ERR(data)) + return PTR_ERR(data); err = -EINVAL; rcu_read_lock(); @@ -2047,7 +2043,6 @@ int xfrm_user_policy(struct sock *sk, int optname, u8 __user *optval, int optlen err = 0; } -out: kfree(data); return err; }