Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4573314pxv; Tue, 6 Jul 2021 04:23:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz6yQlQUzs0DXSvPP158yRqf5/16a4LHPWLoqU9DwJSKkOBpzt0bW7UPG2qsloY5NnmItAK X-Received: by 2002:a05:6638:28a:: with SMTP id c10mr16249048jaq.112.1625570616078; Tue, 06 Jul 2021 04:23:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625570616; cv=none; d=google.com; s=arc-20160816; b=LGbvIzH4sY5RGmNWnBOP6uY+Wjn75AX44z0UHAU2PYYdOEgQfkj5qBnWDwthpy8a4i UPfj57QKxf+Xp6zZe0xXAv1B/sUmFA5/ghvFghfThJ7XKFveo20Ldszmu7DXEc9PybSM S0vJ9BBwAcYZb2I/rfnZ5XqwvXTC0X2nbFKsSmaBrfkSdBA5ERqAZG6zPgaBNHrPQSBX 8qFtfyihcumlVfJd8hL4s64+DMfGc9hgcDqpe8rwieMLQMKymlTXXu4QiCih3U110B37 EiRtnWPmSt7dHkayi3rGacNNMYk6A3W3npu9INlQwc343iC2rCYZXJ6eef1MZg28N46X gpKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4uhG0OmXowpYyN6wl7HsO22YyGMHjfLsmyb8XdlXJ7A=; b=SfyEqX/Keah3afXUx28MbPRbw2tp6mDMP0q5BvhjmdsMMlbbaNlgOAY1ZSD780X1/l YaqSjZSKbbxQEjKMMwCDHx+aGi2MZYN7RMHbGvzKLg04F0Pw/Eo9L5govjFF7HQ0iqL4 rr3rAG0eZSSMDCFiaPi7J37u1axSyt5CKCEs5sOvP0hjajjjbBC2K57LY0hSh8BxGhI3 ehdO54iSnK4CvSG+eprUOd1jhjj+YDhyDHjQe3JrRhGBkqQYsIuNZWzkHxmn5E3s4rNg NxoCoiAbJu/xc9lDcDf8+Uo+eX83LaSim+mNFMp803F909Q0OEjPr4F9Om3IRUZuR6x7 Shtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=MNiLN3CE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q3si11429846iob.0.2021.07.06.04.23.24; Tue, 06 Jul 2021 04:23:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=MNiLN3CE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233166AbhGFLXe (ORCPT + 99 others); Tue, 6 Jul 2021 07:23:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:55924 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232832AbhGFLTJ (ORCPT ); Tue, 6 Jul 2021 07:19:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3F01F61C50; Tue, 6 Jul 2021 11:16:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1625570190; bh=NWL3vADDU6N+1LuUlaashQBGcDZ2JluWdi3H/fJzvaI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MNiLN3CEpVn2gL7UHDZzkBfkwT6r3/ZaR/IUaSc+p0ZmQr3+4EGGYX/bNd2GJ+rlD 3ttQSFE5yvMqikc4yASxF1CiJVEiHUXsJV35jrpBe2+zfK0tHQ79iX8HCNHRgq3X9C N/4heFzyg4MkscEGHeL+s0AfWMyMVHws0gX3mWh1oe8pP4ZgU/85Q511NxRDMCRn18 rxaI7yz5h/Dyub7h2grOfzBjCRSTBeoiammN5Dr0BjF0Fn3l3MOyLvm7q7FJ9pGMQp 3+GkPTp/CTfCloOcEJmAsfMuWdxWHeJVLS9RTUkiiFlznQELXN29NHy9MTbxsCA/6i S/PIdhRtREbVQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Steffen Klassert , Tobias Brunner , Sasha Levin , netdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.13 105/189] xfrm: Fix error reporting in xfrm_state_construct. Date: Tue, 6 Jul 2021 07:12:45 -0400 Message-Id: <20210706111409.2058071-105-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210706111409.2058071-1-sashal@kernel.org> References: <20210706111409.2058071-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Steffen Klassert [ Upstream commit 6fd06963fa74197103cdbb4b494763127b3f2f34 ] When memory allocation for XFRMA_ENCAP or XFRMA_COADDR fails, the error will not be reported because the -ENOMEM assignment to the err variable is overwritten before. Fix this by moving these two in front of the function so that memory allocation failures will be reported. Reported-by: Tobias Brunner Signed-off-by: Steffen Klassert Signed-off-by: Sasha Levin --- net/xfrm/xfrm_user.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index f0aecee4d539..b47d613409b7 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c @@ -580,6 +580,20 @@ static struct xfrm_state *xfrm_state_construct(struct net *net, copy_from_user_state(x, p); + if (attrs[XFRMA_ENCAP]) { + x->encap = kmemdup(nla_data(attrs[XFRMA_ENCAP]), + sizeof(*x->encap), GFP_KERNEL); + if (x->encap == NULL) + goto error; + } + + if (attrs[XFRMA_COADDR]) { + x->coaddr = kmemdup(nla_data(attrs[XFRMA_COADDR]), + sizeof(*x->coaddr), GFP_KERNEL); + if (x->coaddr == NULL) + goto error; + } + if (attrs[XFRMA_SA_EXTRA_FLAGS]) x->props.extra_flags = nla_get_u32(attrs[XFRMA_SA_EXTRA_FLAGS]); @@ -600,23 +614,9 @@ static struct xfrm_state *xfrm_state_construct(struct net *net, attrs[XFRMA_ALG_COMP]))) goto error; - if (attrs[XFRMA_ENCAP]) { - x->encap = kmemdup(nla_data(attrs[XFRMA_ENCAP]), - sizeof(*x->encap), GFP_KERNEL); - if (x->encap == NULL) - goto error; - } - if (attrs[XFRMA_TFCPAD]) x->tfcpad = nla_get_u32(attrs[XFRMA_TFCPAD]); - if (attrs[XFRMA_COADDR]) { - x->coaddr = kmemdup(nla_data(attrs[XFRMA_COADDR]), - sizeof(*x->coaddr), GFP_KERNEL); - if (x->coaddr == NULL) - goto error; - } - xfrm_mark_get(attrs, &x->mark); xfrm_smark_init(attrs, &x->props.smark); -- 2.30.2