summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Enju <kohei@enjuk.jp>2026-01-17 16:00:45 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-02-06 16:48:25 +0100
commit510a16f1c5c1690b33504052bc13fbc2772c23f8 (patch)
tree5dcceebb8cfe40823e4b530abbe69df1be2cce0b
parenta9c96f113a5f3b274b8fb51ff778c2fa800f1cd2 (diff)
downloadlinux-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.c2
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;
}
/**