mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	module: Fix load_module() error path
The load_module() error path frees a module but forgot to take it out
of the mod_tree, leaving a dangling entry in the tree, causing havoc.
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reported-by: Arthur Marsh <arthur.marsh@internode.on.net>
Tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
Fixes: 93c2e105f6 ("module: Optimize __module_address() using a latched RB-tree")
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
			
			
This commit is contained in:
		
							parent
							
								
									45820c294f
								
							
						
					
					
						commit
						758556bdc1
					
				
					 1 changed files with 1 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -3557,6 +3557,7 @@ static int load_module(struct load_info *info, const char __user *uargs,
 | 
			
		|||
	mutex_lock(&module_mutex);
 | 
			
		||||
	/* Unlink carefully: kallsyms could be walking list. */
 | 
			
		||||
	list_del_rcu(&mod->list);
 | 
			
		||||
	mod_tree_remove(mod);
 | 
			
		||||
	wake_up_all(&module_wq);
 | 
			
		||||
	/* Wait for RCU-sched synchronizing before releasing mod->list. */
 | 
			
		||||
	synchronize_sched();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue