Patch "rxrpc: check return value of skb_to_sgvec always" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
rxrpc: check return value of skb_to_sgvec always
to the 4.9-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:
rxrpc-check-return-value-of-skb_to_sgvec-always.patch
and it can be found in the queue-4.9 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
89a5ea99662505d2d61f2a3030a6896c2cb3cdb0Mon Sep 17 00:00:00 2001
From: "Jason A. Donenfeld" <[email protected]>
Date: Sun, 4 Jun 2017 04:16:24 +0200
Subject: rxrpc: check return value of skb_to_sgvec always
From: Jason A. Donenfeld <[email protected]>
commit 89a5ea99662505d2d61f2a3030a6896c2cb3cdb0 upstream.
--- net/rxrpc/rxkad.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-)
net/rxrpc/rxkad.c +14 -5
@@ -229,7 +229,9 @@ static int rxkad_secure_packet_encrypt(c len &= ~(call->conn->size_align -1 );sg_init_table (sg, nsg); -skb_to_sgvec (skb, sg,0 , len); + err =skb_to_sgvec (skb, sg,0 , len); +if (unlikely (err <0 )) + goto out;skcipher_request_set_crypt (req, sg, sg, len, iv.x);crypto_skcipher_encrypt (req);
@@ -325,7 +327,7 @@ static int rxkad_verify_packet_1(structstruct sk_buff *trailer;u32 data_size, buf;u16 check; -int nsg; +int nsg, ret;_enter ("" );
@@ -342,7 +344,9 @@ static int rxkad_verify_packet_1(struct goto nomem;sg_init_table (sg, nsg); -skb_to_sgvec (skb, sg, offset,8 ); + ret =skb_to_sgvec (skb, sg, offset,8 ); +if (unlikely (ret <0 )) +return ret;/* start the decryption afresh */ memset (&iv,0 ,sizeof (iv));
@@ -405,7 +409,7 @@ static int rxkad_verify_packet_2(structstruct sk_buff *trailer;u32 data_size, buf;u16 check; -int nsg; +int nsg, ret;_enter (",{%d}" , skb->len);
@@ -429,7 +433,12 @@ static int rxkad_verify_packet_2(struct }sg_init_table (sg, nsg); -skb_to_sgvec (skb, sg, offset, len); + ret =skb_to_sgvec (skb, sg, offset, len); +if (unlikely (ret <0 )) { +if (sg != _sg) +kfree (sg); +return ret; + }/* decrypt from the session key */ token = call->conn->params.key->payload.data[0 ];
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/ipsec-check-return-value-of-skb_to_sgvec-always.patch queue-4.9/skbuff-return-emsgsize-in-skb_to_sgvec-to-prevent-overflow.patch queue-4.9/rxrpc-check-return-value-of-skb_to_sgvec-always.patch queue-4.9/virtio_net-check-return-value-of-skb_to_sgvec-always.patch queue-4.9/macsec-check-return-value-of-skb_to_sgvec-always.patch queue-4.9/virtio_net-check-return-value-of-skb_to_sgvec-in-one-more-location.patch