aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/liveupdate/ssh:/git@git.zx2c4.com
diff options
context:
space:
mode:
authorDudu Lu <phx0fer@gmail.com>2026-04-20 12:40:27 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-04-27 07:30:16 -0600
commite51f42114abbdf47f29dda43e7826be28907fcd2 (patch)
tree7c450fd5835c65c6f8735fd24e5b7ab4e2b14aef /kernel/liveupdate/ssh:/git@git.zx2c4.com
parentcrypto: krb5enc - fix sleepable flag handling in encrypt dispatch (diff)
crypto: krb5enc - fix async decrypt skipping hash verification
commit 3bfbf5f0a99c991769ec562721285df7ab69240b upstream. krb5enc_dispatch_decrypt() sets req->base.complete as the skcipher callback, which is the caller's own completion handler. When the skcipher completes asynchronously, this signals "done" to the caller without executing krb5enc_dispatch_decrypt_hash(), completely bypassing the integrity verification (hash check). Compare with the encrypt path which correctly uses krb5enc_encrypt_done as an intermediate callback to chain into the hash computation on async completion. Fix by adding krb5enc_decrypt_done as an intermediate callback that chains into krb5enc_dispatch_decrypt_hash() upon async skcipher completion, matching the encrypt path's callback pattern. Also fix EBUSY/EINPROGRESS handling throughout: remove krb5enc_request_complete() which incorrectly swallowed EINPROGRESS notifications that must be passed up to callers waiting on backlogged requests, and add missing EBUSY checks in krb5enc_encrypt_ahash_done for the dispatch_encrypt return value. Fixes: d1775a177f7f ("crypto: Add 'krb5enc' hash and cipher AEAD algorithm") Signed-off-by: Dudu Lu <phx0fer@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Unset MAY_BACKLOG on the async completion path so the user won't see back-to-back EINPROGRESS notifications. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'kernel/liveupdate/ssh:/git@git.zx2c4.com')
0 files changed, 0 insertions, 0 deletions