]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
efivarfs: fix error propagation in efivar_entry_get()
authorKohei Enju <kohei@enjuk.jp>
Sat, 17 Jan 2026 16:00:45 +0000 (16:00 +0000)
committerArd Biesheuvel <ardb@kernel.org>
Mon, 19 Jan 2026 07:40:36 +0000 (08:40 +0100)
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>
fs/efivarfs/vars.c

index 6edc10958ecf558461612c8b59eb3e414fee0f24..70e13db260dba045bfceaccffdd078268342aef9 100644 (file)
@@ -552,7 +552,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;
 }
 
 /**