diff options
| author | Kohei Enju <kohei@enjuk.jp> | 2026-01-17 16:00:45 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-02-06 16:48:25 +0100 |
| commit | 510a16f1c5c1690b33504052bc13fbc2772c23f8 (patch) | |
| tree | 5dcceebb8cfe40823e4b530abbe69df1be2cce0b | |
| parent | a9c96f113a5f3b274b8fb51ff778c2fa800f1cd2 (diff) | |
| download | linux-510a16f1c5c1690b33504052bc13fbc2772c23f8.tar.gz linux-510a16f1c5c1690b33504052bc13fbc2772c23f8.tar.bz2 linux-510a16f1c5c1690b33504052bc13fbc2772c23f8.zip | |
efivarfs: fix error propagation in efivar_entry_get()
commit 4b22ec1685ce1fc0d862dcda3225d852fb107995 upstream.
efivar_entry_get() always returns success even if the underlying
__efivar_entry_get() fails, masking errors.
This may result in uninitialized heap memory being copied to userspace
in the efivarfs_file_read() path.
Fix it by returning the error from __efivar_entry_get().
Fixes: 2d82e6227ea1 ("efi: vars: Move efivar caching layer into efivarfs")
Cc: <stable@vger.kernel.org> # v6.1+
Signed-off-by: Kohei Enju <kohei@enjuk.jp>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | fs/efivarfs/vars.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/efivarfs/vars.c b/fs/efivarfs/vars.c index 13bc60698955..b10aa5afd7f7 100644 --- a/fs/efivarfs/vars.c +++ b/fs/efivarfs/vars.c @@ -609,7 +609,7 @@ int efivar_entry_get(struct efivar_entry *entry, u32 *attributes, err = __efivar_entry_get(entry, attributes, size, data); efivar_unlock(); - return 0; + return err; } /** |
