summaryrefslogtreecommitdiffstats
path: root/kernel/exec_domain.c
Commit message (Collapse)AuthorAgeFilesLines
* sys_personality: change sys_personality() to accept "unsigned int" instead ↵Oleg Nesterov2010-06-041-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | of u_long task_struct->pesonality is "unsigned int", but sys_personality() paths use "unsigned long pesonality". This means that every assignment or comparison is not right. In particular, if this argument does not fit into "unsigned int" __set_personality() changes the caller's personality and then sys_personality() returns -EINVAL. Turn this argument into "unsigned int" and avoid overflows. Obviously, this is the user-visible change, we just ignore the upper bits. But this can't break the sane application. There is another thing which can confuse the poorly written applications. User-space thinks that this syscall returns int, not long. This means that the returned value can be negative and look like the error code. But note that libc won't be confused and thus errno won't be set, and with this patch the user-space can never get -1 unless sys_personality() really fails. And, most importantly, the negative RET != -1 is only possible if that app previously called personality(RET). Pointed-out-by: Wenming Zhang <wezhang@redhat.com> Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Get rid of indirect include of fs_struct.hAl Viro2009-03-311-0/+1
| | | | | | | | Don't pull it in sched.h; very few files actually need it and those can include directly. sched.h itself only needs forward declaration of struct fs_struct; Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Kill unsharing fs_struct in __set_personality()Al Viro2009-03-311-22/+0
| | | | | | | That's a rudiment of altroot support. I.e. it should've been buried a long time ago. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [CVE-2009-0029] System call wrappers part 04Heiko Carstens2009-01-141-2/+1
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* proc: move /proc/execdomains to kernel/exec_domain.cAlexey Dobriyan2008-10-231-6/+27
| | | | Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
* [PATCH] kill altrootAl Viro2008-07-261-1/+0
| | | | | | long overdue... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* remove CONFIG_KMOD from core kernel codeJohannes Berg2008-07-221-1/+1
| | | | | | | Always compile request_module when the kernel allows modules. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* whitespace fixes: execution domainsDaniel Walker2007-10-181-1/+1
| | | | | | Signed-off-by: Daniel Walker <dwalker@mvista.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Remove obsolete #include <linux/config.h>Jörn Engel2006-06-301-1/+0
| | | | | Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [PATCH] Fix module refcount leak in __set_personality()Sergey Vlasov2006-03-241-0/+1
| | | | | | | | | | | 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>
* Linux-2.6.12-rc2Linus Torvalds2005-04-161-0/+209
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
OpenPOWER on IntegriCloud