diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-16 09:24:41 -0600 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-16 09:24:41 -0600 |
commit | 6fedb0ff32e6bfcc408a8d52c68b8bfe4e3d945b (patch) | |
tree | c5fa0f4a49bfb32065350f871e8e057ee8fd8a73 | |
parent | 90c80969145d006eb6294a3aa501d0e156f5e244 (diff) | |
parent | ff7e0055bb5ddbbb320cdd8dfd3e18672bddd2ad (diff) | |
download | linux-6fedb0ff32e6bfcc408a8d52c68b8bfe4e3d945b.tar.bz2 |
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module fix from Rusty Russell:
"Nasty potential bug if someone uses a known module param with an
invalid value (we don't fail unknown module params any more, just
warn)"
* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
module: Clean up ro/nx after early module load failures
-rw-r--r-- | kernel/module.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/module.c b/kernel/module.c index 6f69463f0066..03214bd288e9 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3304,6 +3304,11 @@ static int load_module(struct load_info *info, const char __user *uargs, mutex_lock(&module_mutex); module_bug_cleanup(mod); mutex_unlock(&module_mutex); + + /* we can't deallocate the module until we clear memory protection */ + unset_module_init_ro_nx(mod); + unset_module_core_ro_nx(mod); + ddebug_cleanup: dynamic_debug_remove(info->debug); synchronize_sched(); |