linux-stable/fs/crypto
Eric Biggers cff805b151 fscrypt: fix keyring memory leak on mount failure
commit ccd30a476f upstream.

Commit d7e7b9af10 ("fscrypt: stop using keyrings subsystem for
fscrypt_master_key") moved the keyring destruction from __put_super() to
generic_shutdown_super() so that the filesystem's block device(s) are
still available.  Unfortunately, this causes a memory leak in the case
where a mount is attempted with the test_dummy_encryption mount option,
but the mount fails after the option has already been processed.

To fix this, attempt the keyring destruction in both places.

Reported-by: syzbot+104c2a89561289cec13e@syzkaller.appspotmail.com
Fixes: d7e7b9af10 ("fscrypt: stop using keyrings subsystem for fscrypt_master_key")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Link: https://lore.kernel.org/r/20221011213838.209879-1-ebiggers@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-10 18:15:37 +01:00
..
Kconfig fscrypt: relax Kconfig dependencies for crypto API algorithms 2021-04-22 17:31:32 +10:00
Makefile fscrypt: add inline encryption support 2020-07-08 10:29:30 -07:00
bio.c block: rename BIO_MAX_PAGES to BIO_MAX_VECS 2021-03-11 07:47:48 -07:00
crypto.c fscrypt: adjust logging for in-creation inodes 2020-09-22 06:48:38 -07:00
fname.c fscrypt: align Base64 encoding with RFC 4648 base64url 2021-07-25 20:47:05 -07:00
fscrypt_private.h fscrypt: stop using keyrings subsystem for fscrypt_master_key 2022-11-10 18:15:37 +01:00
hkdf.c fscrypt: allow 256-bit master keys with AES-256-XTS 2021-11-18 19:16:11 +01:00
hooks.c fscrypt: stop using keyrings subsystem for fscrypt_master_key 2022-11-10 18:15:37 +01:00
inline_crypt.c fscrypt: fix inline encryption not used on new files 2020-11-11 20:59:07 -08:00
keyring.c fscrypt: fix keyring memory leak on mount failure 2022-11-10 18:15:37 +01:00
keysetup.c fscrypt: stop using keyrings subsystem for fscrypt_master_key 2022-11-10 18:15:37 +01:00
keysetup_v1.c fscrypt: stop pretending that key setup is nofs-safe 2020-09-22 06:48:42 -07:00
policy.c fscrypt: stop using keyrings subsystem for fscrypt_master_key 2022-11-10 18:15:37 +01:00