mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
efivars: Check size of user object
Unbelieavably there are no checks to see whether the data structure passed to 'new_var' and 'del_var' is the size that we expect. Let's add some for better robustness. Cc: Mike Waychison <mikew@google.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
This commit is contained in:
parent
bafc84d539
commit
e003bbee2a
@ -347,6 +347,9 @@ static ssize_t efivar_create(struct file *filp, struct kobject *kobj,
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EACCES;
|
||||
|
||||
if (count != sizeof(*new_var))
|
||||
return -EINVAL;
|
||||
|
||||
attributes = new_var->Attributes;
|
||||
size = new_var->DataSize;
|
||||
data = new_var->Data;
|
||||
@ -395,6 +398,9 @@ static ssize_t efivar_delete(struct file *filp, struct kobject *kobj,
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EACCES;
|
||||
|
||||
if (count != sizeof(*del_var))
|
||||
return -EINVAL;
|
||||
|
||||
name = del_var->VariableName;
|
||||
vendor = del_var->VendorGuid;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user