From 0ac64c4f8555a7dedb57d77a1e17977600705c7a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 17 Sep 2014 13:46:16 -0700 Subject: [PATCH] 3.16-stable patches added patches: module-clean-up-ro-nx-after-early-module-load-failures.patch --- queue-3.10/series | 0 queue-3.14/series | 0 ...-nx-after-early-module-load-failures.patch | 41 +++++++++++++++++++ queue-3.16/series | 1 + 4 files changed, 42 insertions(+) create mode 100644 queue-3.10/series create mode 100644 queue-3.14/series create mode 100644 queue-3.16/module-clean-up-ro-nx-after-early-module-load-failures.patch create mode 100644 queue-3.16/series diff --git a/queue-3.10/series b/queue-3.10/series new file mode 100644 index 00000000000..e69de29bb2d diff --git a/queue-3.14/series b/queue-3.14/series new file mode 100644 index 00000000000..e69de29bb2d diff --git a/queue-3.16/module-clean-up-ro-nx-after-early-module-load-failures.patch b/queue-3.16/module-clean-up-ro-nx-after-early-module-load-failures.patch new file mode 100644 index 00000000000..c2ad2fc244d --- /dev/null +++ b/queue-3.16/module-clean-up-ro-nx-after-early-module-load-failures.patch @@ -0,0 +1,41 @@ +From ff7e0055bb5ddbbb320cdd8dfd3e18672bddd2ad Mon Sep 17 00:00:00 2001 +From: Andy Lutomirski +Date: Sat, 16 Aug 2014 04:13:37 +0930 +Subject: module: Clean up ro/nx after early module load failures + +From: Andy Lutomirski + +commit ff7e0055bb5ddbbb320cdd8dfd3e18672bddd2ad upstream. + +The commit + + 4982223e51e8 module: set nx before marking module MODULE_STATE_COMING. + +introduced a regression: if a module fails to parse its arguments or +if mod_sysfs_setup fails, then the module's memory will be freed +while still read-only. Anything that reuses that memory will crash +as soon as it tries to write to it. + +Cc: Rusty Russell +Signed-off-by: Andy Lutomirski +Signed-off-by: Rusty Russell +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/module.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -3308,6 +3308,11 @@ static int load_module(struct load_info + 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(); diff --git a/queue-3.16/series b/queue-3.16/series new file mode 100644 index 00000000000..618b46300ac --- /dev/null +++ b/queue-3.16/series @@ -0,0 +1 @@ +module-clean-up-ro-nx-after-early-module-load-failures.patch -- 2.47.3