diff options
| author | Sergey Vlasov <vsu@altlinux.ru> | 2006-03-24 03:18:38 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-24 07:33:30 -0800 | 
| commit | 6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81 (patch) | |
| tree | 93a839de19cf3f49bbbb3668f31c8a002c2f7f7f /kernel | |
| parent | b5a7c4f5835ae2805d00ca39709002cb03364143 (diff) | |
| download | olio-linux-3.10-6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81.tar.xz olio-linux-3.10-6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81.zip  | |
[PATCH] Fix module refcount leak in __set_personality()
If the change of personality does not lead to change of exec domain,
__set_personality() returned without releasing the module reference
acquired by lookup_exec_domain().
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/exec_domain.c | 1 | 
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/exec_domain.c b/kernel/exec_domain.c index 867d6dbeb57..c01cead2cfd 100644 --- a/kernel/exec_domain.c +++ b/kernel/exec_domain.c @@ -140,6 +140,7 @@ __set_personality(u_long personality)  	ep = lookup_exec_domain(personality);  	if (ep == current_thread_info()->exec_domain) {  		current->personality = personality; +		module_put(ep->module);  		return 0;  	}  |