Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Steffen Klassert <steffen.klassert@secunet.com>,
Tobias Brunner <tobias@strongswan.org>,
Sasha Levin <sashal@kernel.org>,
netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.9 20/35] xfrm: Fix error reporting in xfrm_state_construct.
Date: Tue, 6 Jul 2021 07:28:32 -0400 [thread overview]
Message-ID: <20210706112848.2066036-20-sashal@kernel.org> (raw)
In-Reply-To: <20210706112848.2066036-1-sashal@kernel.org>
From: Steffen Klassert <steffen.klassert@secunet.com>
[ 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 <tobias@strongswan.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
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 feb24ca530f2..48139e1a0ac9 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -566,6 +566,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]);
@@ -586,23 +600,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);
err = __xfrm_init_state(x, false);
--
2.30.2
next prev parent reply other threads:[~2021-07-06 12:24 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-06 11:28 [PATCH AUTOSEL 4.9 01/35] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 03/35] atm: iphase: fix possible use-after-free in ia_module_exit() Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 04/35] mISDN: fix possible use-after-free in HFC_cleanup() Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 05/35] atm: nicstar: Fix possible use-after-free in nicstar_cleanup() Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 06/35] net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 11/35] e100: handle eeprom as little endian Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 13/35] ipv6: use prandom_u32() for ID generation Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 16/35] net: micrel: check return value after calling platform_get_resource() Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 17/35] net: moxa: Use devm_platform_get_and_ioremap_resource() Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 18/35] fjes: check return value after calling platform_get_resource() Sasha Levin
2021-07-06 11:28 ` Sasha Levin [this message]
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 21/35] wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 22/35] wl1251: Fix possible buffer overflow in wl1251_cmd_scan Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 23/35] cw1200: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 25/35] atm: nicstar: use 'dma_free_coherent' instead of 'kfree' Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 26/35] atm: nicstar: register the interrupt handler in the right place Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 28/35] sfc: avoid double pci_remove of VFs Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 29/35] sfc: error code if SRIOV cannot be disabled Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 30/35] wireless: wext-spy: Fix out-of-bounds warning Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 32/35] Bluetooth: Fix the HCI to MGMT status conversion table Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 33/35] Bluetooth: Shutdown controller after workqueues are flushed or cancelled Sasha Levin
2021-07-06 11:28 ` [PATCH AUTOSEL 4.9 35/35] sctp: add size validation when walking chunks Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210706112848.2066036-20-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=steffen.klassert@secunet.com \
--cc=tobias@strongswan.org \
--subject='Re: [PATCH AUTOSEL 4.9 20/35] xfrm: Fix error reporting in xfrm_state_construct.' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).