diff options
author | Josh Poimboeuf <[email protected]> | 2020-04-29 10:24:43 -0500 |
---|---|---|
committer | Jiri Kosina <[email protected]> | 2020-05-08 00:12:42 +0200 |
commit | dcf550e52f567cb7a421169d2522869f9188aca5 (patch) | |
tree | 8132935cd192b34addd1a3eb2c8cb120258510e6 | |
parent | a811c1fa0a02c062555b54651065899437bacdbe (diff) |
livepatch: Disallow vmlinux.ko
This is purely a theoretical issue, but if there were a module named
vmlinux.ko, the livepatch relocation code wouldn't be able to
distinguish between vmlinux-specific and vmlinux.o-specific KLP
relocations.
If CONFIG_LIVEPATCH is enabled, don't allow a module named vmlinux.ko.
Suggested-by: Peter Zijlstra <[email protected]>
Signed-off-by: Josh Poimboeuf <[email protected]>
Acked-by: Miroslav Benes <[email protected]>
Acked-by: Joe Lawrence <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
-rw-r--r-- | kernel/livepatch/core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c index c3512e7e0801..40cfac8156fd 100644 --- a/kernel/livepatch/core.c +++ b/kernel/livepatch/core.c @@ -1139,6 +1139,11 @@ int klp_module_coming(struct module *mod) if (WARN_ON(mod->state != MODULE_STATE_COMING)) return -EINVAL; + if (!strcmp(mod->name, "vmlinux")) { + pr_err("vmlinux.ko: invalid module name"); + return -EINVAL; + } + mutex_lock(&klp_mutex); /* * Each module has to know that klp_module_coming() |