proc: sysctl: prevent aliased sysctls from getting passed to init
authorKrister Johansen <kjlx@templeofstupid.com>
Fri, 27 Oct 2023 21:46:40 +0000 (14:46 -0700)
committerLuis Chamberlain <mcgrof@kernel.org>
Wed, 1 Nov 2023 19:10:02 +0000 (12:10 -0700)
commit8001f49394e353f035306a45bcf504f06fca6355
tree538778c2480a443486588bcc4fd68f33269e9bba
parentccee9a2a8c002516d4252952df836abeaddfa39c
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>
fs/proc/proc_sysctl.c
include/linux/sysctl.h
init/main.c