]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
tls: separate no-async decryption request handling from async
authorSabrina Dubroca <sd@queasysnail.net>
Wed, 28 Feb 2024 22:43:59 +0000 (23:43 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:26:12 +0000 (16:26 +0200)
commit48905146d11dbf1ddbb2967319016a83976953f5
treed1811b9aef2a9d5b194b370d5c0611ca57e2311d
parent74c68b295b131897d1ff8b3537579b53978b44e4
tls: separate no-async decryption request handling from async

commit 41532b785e9d79636b3815a64ddf6a096647d011 upstream.

If we're not doing async, the handling is much simpler. There's no
reference counting, we just need to wait for the completion to wake us
up and return its result.

We should preferably also use a separate crypto_wait. I'm not seeing a
UAF as I did in the past, I think aec7961916f3 ("tls: fix race between
async notify and socket close") took care of it.

This will make the next fix easier.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/47bde5f649707610eaef9f0d679519966fc31061.1709132643.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[ William: The original patch did not apply cleanly due to deletions of
  non-existent lines in 6.1.y. The UAF the author stopped seeing can still
  be reproduced on systems without AVX in conjunction with cryptd.
  Also removed an extraneous statement after a return statement that is
  adjacent to diff. ]
Link: https://lore.kernel.org/netdev/he2K1yz_u7bZ-CnYcTSQ4OxuLuHZXN6xZRgp6_ICSWnq8J5FpI_uD1i_1lTSf7WMrYb5ThiX1OR2GTOB2IltgT49Koy7Hhutr4du4KtLvyk=@willsroot.io/
Signed-off-by: William Liu <will@willsroot.io>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/tls/tls_sw.c