Message ID | 20220301041851.12459-1-rdunlap@infradead.org |
---|---|
State | Accepted |
Commit | 9feaf8b387ee0ece9c1d7add308776b502a35d0c |
Headers | show |
Series | efi: fix return value of __setup handlers | expand |
On Tue, 1 Mar 2022 at 05:19, Randy Dunlap <rdunlap@infradead.org> wrote: > > When "dump_apple_properties" is used on the kernel boot command line, > it causes an Unknown parameter message and the string is added to init's > argument strings: > > Unknown kernel command line parameters "dump_apple_properties > BOOT_IMAGE=/boot/bzImage-517rc6 efivar_ssdt=newcpu_ssdt", will be > passed to user space. > > Run /sbin/init as init process > with arguments: > /sbin/init > dump_apple_properties > with environment: > HOME=/ > TERM=linux > BOOT_IMAGE=/boot/bzImage-517rc6 > efivar_ssdt=newcpu_ssdt > > Similarly when "efivar_ssdt=somestring" is used, it is added to the > Unknown parameter message and to init's environment strings, polluting > them (see examples above). > > Change the return value of the __setup functions to 1 to indicate > that the __setup options have been handled. > > Fixes: 58c5475aba67 ("x86/efi: Retrieve and assign Apple device properties") > Fixes: 475fb4e8b2f4 ("efi / ACPI: load SSTDs from EFI variables") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru> > Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru > Cc: Ard Biesheuvel <ardb@kernel.org> > Cc: linux-efi@vger.kernel.org > Cc: Lukas Wunner <lukas@wunner.de> > Cc: Octavian Purdila <octavian.purdila@intel.com> > Cc: "Rafael J. Wysocki" <rafael@kernel.org> > Cc: Matt Fleming <matt@codeblueprint.co.uk> Queued as a fix, Thanks, Ard. > --- > drivers/firmware/efi/apple-properties.c | 2 +- > drivers/firmware/efi/efi.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > --- linux-next-20220228.orig/drivers/firmware/efi/apple-properties.c > +++ linux-next-20220228/drivers/firmware/efi/apple-properties.c > @@ -24,7 +24,7 @@ static bool dump_properties __initdata; > static int __init dump_properties_enable(char *arg) > { > dump_properties = true; > - return 0; > + return 1; > } > > __setup("dump_apple_properties", dump_properties_enable); > --- linux-next-20220228.orig/drivers/firmware/efi/efi.c > +++ linux-next-20220228/drivers/firmware/efi/efi.c > @@ -212,7 +212,7 @@ static int __init efivar_ssdt_setup(char > memcpy(efivar_ssdt, str, strlen(str)); > else > pr_warn("efivar_ssdt: name too long: %s\n", str); > - return 0; > + return 1; > } > __setup("efivar_ssdt=", efivar_ssdt_setup); >
--- linux-next-20220228.orig/drivers/firmware/efi/apple-properties.c +++ linux-next-20220228/drivers/firmware/efi/apple-properties.c @@ -24,7 +24,7 @@ static bool dump_properties __initdata; static int __init dump_properties_enable(char *arg) { dump_properties = true; - return 0; + return 1; } __setup("dump_apple_properties", dump_properties_enable); --- linux-next-20220228.orig/drivers/firmware/efi/efi.c +++ linux-next-20220228/drivers/firmware/efi/efi.c @@ -212,7 +212,7 @@ static int __init efivar_ssdt_setup(char memcpy(efivar_ssdt, str, strlen(str)); else pr_warn("efivar_ssdt: name too long: %s\n", str); - return 0; + return 1; } __setup("efivar_ssdt=", efivar_ssdt_setup);
When "dump_apple_properties" is used on the kernel boot command line, it causes an Unknown parameter message and the string is added to init's argument strings: Unknown kernel command line parameters "dump_apple_properties BOOT_IMAGE=/boot/bzImage-517rc6 efivar_ssdt=newcpu_ssdt", will be passed to user space. Run /sbin/init as init process with arguments: /sbin/init dump_apple_properties with environment: HOME=/ TERM=linux BOOT_IMAGE=/boot/bzImage-517rc6 efivar_ssdt=newcpu_ssdt Similarly when "efivar_ssdt=somestring" is used, it is added to the Unknown parameter message and to init's environment strings, polluting them (see examples above). Change the return value of the __setup functions to 1 to indicate that the __setup options have been handled. Fixes: 58c5475aba67 ("x86/efi: Retrieve and assign Apple device properties") Fixes: 475fb4e8b2f4 ("efi / ACPI: load SSTDs from EFI variables") Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru> Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru Cc: Ard Biesheuvel <ardb@kernel.org> Cc: linux-efi@vger.kernel.org Cc: Lukas Wunner <lukas@wunner.de> Cc: Octavian Purdila <octavian.purdila@intel.com> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Matt Fleming <matt@codeblueprint.co.uk> --- drivers/firmware/efi/apple-properties.c | 2 +- drivers/firmware/efi/efi.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)