summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/efi/efivars.c
diff options
context:
space:
mode:
authorVladis Dronov <vdronov@redhat.com>2020-03-08 09:08:55 +0100
committerIngo Molnar <mingo@kernel.org>2020-03-08 09:56:48 +0100
commitd6c066fda90d578aacdf19771a027ed484a79825 (patch)
treeab96a2e295bc607151712dc103f5b1137f25e439 /drivers/firmware/efi/efivars.c
parentefi: Fix a race and a buffer overflow while reading efivars via sysfs (diff)
downloadlinux-d6c066fda90d578aacdf19771a027ed484a79825.tar.xz
linux-d6c066fda90d578aacdf19771a027ed484a79825.zip
efi: Add a sanity check to efivar_store_raw()
Add a sanity check to efivar_store_raw() the same way efivar_{attr,size,data}_read() and efivar_show_raw() have it. Signed-off-by: Vladis Dronov <vdronov@redhat.com> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20200305084041.24053-3-vdronov@redhat.com Link: https://lore.kernel.org/r/20200308080859.21568-25-ardb@kernel.org
Diffstat (limited to 'drivers/firmware/efi/efivars.c')
-rw-r--r--drivers/firmware/efi/efivars.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
index 69f13bc4b931..aff3dfb4d7ba 100644
--- a/drivers/firmware/efi/efivars.c
+++ b/drivers/firmware/efi/efivars.c
@@ -208,6 +208,9 @@ efivar_store_raw(struct efivar_entry *entry, const char *buf, size_t count)
u8 *data;
int err;
+ if (!entry || !buf)
+ return -EINVAL;
+
if (in_compat_syscall()) {
struct compat_efi_variable *compat;