Commit 39844b7e authored by Randy Dunlap's avatar Randy Dunlap Committed by Tetsuo Handa

TOMOYO: fix __setup handlers return values

__setup() handlers should return 1 if the parameter is handled.
Returning 0 causes the entire string to be added to init's
environment strings (limited to 32 strings), unnecessarily polluting it.

Using the documented strings "TOMOYO_loader=string1" and
"TOMOYO_trigger=string2" causes an Unknown parameter message:
  Unknown kernel command line parameters
    "BOOT_IMAGE=/boot/bzImage-517rc5 TOMOYO_loader=string1 \
     TOMOYO_trigger=string2", will be passed to user space.

and these strings are added to init's environment string space:
  Run /sbin/init as init process
    with arguments:
     /sbin/init
    with environment:
     HOME=/
     TERM=linux
     BOOT_IMAGE=/boot/bzImage-517rc5
     TOMOYO_loader=string1
     TOMOYO_trigger=string2

With this change, these __setup handlers act as expected,
and init's environment is not polluted with these strings.

Fixes: 0e4ae0e0 ("TOMOYO: Make several options configurable.")
Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Reported-by: default avatarIgor Zhbanov <i.zhbanov@omprussia.ru>
Link: https://lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru
Cc: James Morris <jmorris@namei.org>
Cc: Kentaro Takeda <takedakn@nttdata.co.jp>
Cc: tomoyo-dev-en@lists.osdn.me
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
parent 5c1ee569
...@@ -24,7 +24,7 @@ static const char *tomoyo_loader; ...@@ -24,7 +24,7 @@ static const char *tomoyo_loader;
static int __init tomoyo_loader_setup(char *str) static int __init tomoyo_loader_setup(char *str)
{ {
tomoyo_loader = str; tomoyo_loader = str;
return 0; return 1;
} }
__setup("TOMOYO_loader=", tomoyo_loader_setup); __setup("TOMOYO_loader=", tomoyo_loader_setup);
...@@ -64,7 +64,7 @@ static const char *tomoyo_trigger; ...@@ -64,7 +64,7 @@ static const char *tomoyo_trigger;
static int __init tomoyo_trigger_setup(char *str) static int __init tomoyo_trigger_setup(char *str)
{ {
tomoyo_trigger = str; tomoyo_trigger = str;
return 0; return 1;
} }
__setup("TOMOYO_trigger=", tomoyo_trigger_setup); __setup("TOMOYO_trigger=", tomoyo_trigger_setup);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment