diff options
author | Krister Johansen <kjlx@templeofstupid.com> | 2023-10-27 14:46:40 -0700 |
---|---|---|
committer | Luis Chamberlain <mcgrof@kernel.org> | 2023-11-01 12:10:02 -0700 |
commit | 8001f49394e353f035306a45bcf504f06fca6355 (patch) | |
tree | 538778c2480a443486588bcc4fd68f33269e9bba /init | |
parent | ccee9a2a8c002516d4252952df836abeaddfa39c (diff) | |
download | linux-8001f49394e353f035306a45bcf504f06fca6355.tar.gz linux-8001f49394e353f035306a45bcf504f06fca6355.tar.bz2 linux-8001f49394e353f035306a45bcf504f06fca6355.zip |
proc: sysctl: prevent aliased sysctls from getting passed to init
The code that checks for unknown boot options is unaware of the sysctl
alias facility, which maps bootparams to sysctl values. If a user sets
an old value that has a valid alias, a message about an invalid
parameter will be printed during boot, and the parameter will get passed
to init. Fix by checking for the existence of aliased parameters in the
unknown boot parameter code. If an alias exists, don't return an error
or pass the value to init.
Signed-off-by: Krister Johansen <kjlx@templeofstupid.com>
Cc: stable@vger.kernel.org
Fixes: 0a477e1ae21b ("kernel/sysctl: support handling command line aliases")
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Diffstat (limited to 'init')
-rw-r--r-- | init/main.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/init/main.c b/init/main.c index 436d73261810..e24b0780fdff 100644 --- a/init/main.c +++ b/init/main.c @@ -530,6 +530,10 @@ static int __init unknown_bootoption(char *param, char *val, { size_t len = strlen(param); + /* Handle params aliased to sysctls */ + if (sysctl_is_alias(param)) + return 0; + repair_env_string(param, val); /* Handle obsolete-style parameters */ |