aboutsummaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorKrister Johansen2023-10-27 14:46:40 -0700
committerGreg Kroah-Hartman2023-11-28 17:07:08 +0000
commit5b2352c64c4829fc4fc039182fb182a013cb61b2 (patch)
treef5ce410c72d1fc3d3afc899682c39cedd9ee64b3 /init
parentd91fd028c9f6acfec3094c0989a59c29c87d3b71 (diff)
proc: sysctl: prevent aliased sysctls from getting passed to init
commit 8001f49394e353f035306a45bcf504f06fca6355 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'init')
-rw-r--r--init/main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/init/main.c b/init/main.c
index fe378351e8a9..87a52bdb41d6 100644
--- a/init/main.c
+++ b/init/main.c
@@ -533,6 +533,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 */