aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/kernel
diff options
context:
space:
mode:
authorDavid Wang <00107082@163.com>2025-05-20 00:38:23 +0800
committerAndrew Morton <akpm@linux-foundation.org>2025-05-25 00:53:47 -0700
commit221fcbf77578826fad8f4bfa0530b5b55bf9676a (patch)
tree8c69ca7c4cacf9648eeee72a4ba8ba383ba55368 /kernel
parentmm/cma: make detection of highmem_start more robust (diff)
downloadwireguard-linux-221fcbf77578826fad8f4bfa0530b5b55bf9676a.tar.xz
wireguard-linux-221fcbf77578826fad8f4bfa0530b5b55bf9676a.zip
module: release codetag section when module load fails
When module load fails after memory for codetag section is ready, codetag section memory will not be properly released. This causes memory leak, and if next module load happens to get the same module address, codetag may pick the uninitialized section when manipulating tags during module unload, and leads to "unable to handle page fault" BUG. Link: https://lkml.kernel.org/r/20250519163823.7540-1-00107082@163.com Fixes: 0db6f8d7820a ("alloc_tag: load module tags into separate contiguous memory") Closes: https://lore.kernel.org/all/20250516131246.6244-1-00107082@163.com/ Signed-off-by: David Wang <00107082@163.com> Acked-by: Suren Baghdasaryan <surenb@google.com> Cc: Petr Pavlu <petr.pavlu@suse.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/module/main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/module/main.c b/kernel/module/main.c
index a2859dc3eea6..5c6ab20240a6 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -2829,6 +2829,7 @@ static void module_deallocate(struct module *mod, struct load_info *info)
{
percpu_modfree(mod);
module_arch_freeing_init(mod);
+ codetag_free_module_sections(mod);
free_mod_mem(mod);
}