Patch "xfrm: Oops on error in pfkey_msg2xfrm_state()" has been added to the 4.11-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
xfrm: Oops on error in pfkey_msg2xfrm_state()
to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
xfrm-oops-on-error-in-pfkey_msg2xfrm_state.patch
and it can be found in the queue-4.11 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1e3d0c2c70cd3edb5deed186c5f5c75f2b84a633Mon Sep 17 00:00:00 2001
From: Dan Carpenter <[email protected]>
Date: Wed, 14 Jun 2017 13:34:05 +0300
Subject: xfrm: Oops on error in pfkey_msg2xfrm_state()
From: Dan Carpenter <[email protected]>
commit 1e3d0c2c70cd3edb5deed186c5f5c75f2b84a633 upstream.
There are some missing error codes here so we accidentally return NULL instead of an error pointer. It results in a NULL pointer dereference.
--- net/key/af_key.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
net/key/af_key.c +12 -4
@@ -1169,8 +1169,10 @@ static struct xfrm_state * pfkey_msg2xfrif (key) keysize = (key->sadb_key_bits +7 ) /8 ; x->aalg =kmalloc (sizeof (*x->aalg) + keysize,GFP_KERNEL ); -if (!x->aalg) +if (!x->aalg) { + err = -ENOMEM ; goto out; + }strcpy (x->aalg->alg_name, a->name); x->aalg->alg_key_len =0 ;if (key) {
@@ -1189,8 +1191,10 @@ static struct xfrm_state * pfkey_msg2xfr goto out; } x->calg =kmalloc (sizeof (*x->calg),GFP_KERNEL ); -if (!x->calg) +if (!x->calg) { + err = -ENOMEM ; goto out; + }strcpy (x->calg->alg_name, a->name); x->props.calgo = sa->sadb_sa_encrypt; }else {
@@ -1204,8 +1208,10 @@ static struct xfrm_state * pfkey_msg2xfrif (key) keysize = (key->sadb_key_bits +7 ) /8 ; x->ealg =kmalloc (sizeof (*x->ealg) + keysize,GFP_KERNEL ); -if (!x->ealg) +if (!x->ealg) { + err = -ENOMEM ; goto out; + }strcpy (x->ealg->alg_name, a->name); x->ealg->alg_key_len =0 ;if (key) {
@@ -1250,8 +1256,10 @@ static struct xfrm_state * pfkey_msg2xfrstruct xfrm_encap_tmpl *natt; x->encap =kmalloc (sizeof (*x->encap),GFP_KERNEL ); -if (!x->encap) +if (!x->encap) { + err = -ENOMEM ; goto out; + } natt = x->encap; n_type = ext_hdrs[SADB_X_EXT_NAT_T_TYPE -1 ];
Patches currently in stable-queue which might be from [email protected] are
queue-4.11/xfrm-oops-on-error-in-pfkey_msg2xfrm_state.patch queue-4.11/xfrm-null-dereference-on-allocation-failure.patch