efivarfs: fix error propagation in efivar_entry_get()

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>

authored by Kohei Enju and committed by Ard Biesheuvel 4b22ec16 d7f1b4bd

+1 -1
+1 -1
fs/efivarfs/vars.c
··· 552 552 err = __efivar_entry_get(entry, attributes, size, data); 553 553 efivar_unlock(); 554 554 555 - return 0; 555 + return err; 556 556 } 557 557 558 558 /**