From 2d88e9b15b6e3bc6c43a667057b7e80869fc6cde Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 17 May 2018 12:30:08 +0200 Subject: [PATCH] 4.14-stable patches added patches: xfrm-fix-xfrm_do_migrate-with-aead-e.g-aes-gcm.patch --- queue-4.14/series | 1 + ...frm_do_migrate-with-aead-e.g-aes-gcm.patch | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 queue-4.14/xfrm-fix-xfrm_do_migrate-with-aead-e.g-aes-gcm.patch diff --git a/queue-4.14/series b/queue-4.14/series index dfd51be8bca..be490560537 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -40,3 +40,4 @@ udp-fix-so_bindtodevice.patch scsi-aacraid-correct-hba_send-to-include-iu_type.patch xfrm-use-__skb_queue_tail-in-xfrm_trans_queue.patch btrfs-take-trans-lock-before-access-running-trans-in-check_delayed_ref.patch +xfrm-fix-xfrm_do_migrate-with-aead-e.g-aes-gcm.patch diff --git a/queue-4.14/xfrm-fix-xfrm_do_migrate-with-aead-e.g-aes-gcm.patch b/queue-4.14/xfrm-fix-xfrm_do_migrate-with-aead-e.g-aes-gcm.patch new file mode 100644 index 00000000000..d6f19d19bf2 --- /dev/null +++ b/queue-4.14/xfrm-fix-xfrm_do_migrate-with-aead-e.g-aes-gcm.patch @@ -0,0 +1,42 @@ +From 75bf50f4aaa1c78d769d854ab3d975884909e4fb Mon Sep 17 00:00:00 2001 +From: Antony Antony +Date: Thu, 7 Dec 2017 21:54:27 +0100 +Subject: xfrm: fix xfrm_do_migrate() with AEAD e.g(AES-GCM) + +From: Antony Antony + +commit 75bf50f4aaa1c78d769d854ab3d975884909e4fb upstream. + +copy geniv when cloning the xfrm state. + +x->geniv was not copied to the new state and migration would fail. + +xfrm_do_migrate + .. + xfrm_state_clone() + .. + .. + esp_init_aead() + crypto_alloc_aead() + crypto_alloc_tfm() + crypto_find_alg() return EAGAIN and failed + +Signed-off-by: Antony Antony +Signed-off-by: Steffen Klassert +Cc: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman + +--- + net/xfrm/xfrm_state.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/net/xfrm/xfrm_state.c ++++ b/net/xfrm/xfrm_state.c +@@ -1345,6 +1345,7 @@ static struct xfrm_state *xfrm_state_clo + + if (orig->aead) { + x->aead = xfrm_algo_aead_clone(orig->aead); ++ x->geniv = orig->geniv; + if (!x->aead) + goto error; + } -- 2.47.3