提交 ae1251ab 编写于 作者: H Heiko Carstens

[CVE-2009-0029] System call wrappers part 03

Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
上级 dbf040d9
...@@ -478,7 +478,7 @@ void ctrl_alt_del(void) ...@@ -478,7 +478,7 @@ void ctrl_alt_del(void)
* SMP: There are not races, the GIDs are checked only by filesystem * SMP: There are not races, the GIDs are checked only by filesystem
* operations (as far as semantic preservation is concerned). * operations (as far as semantic preservation is concerned).
*/ */
asmlinkage long sys_setregid(gid_t rgid, gid_t egid) SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -529,7 +529,7 @@ asmlinkage long sys_setregid(gid_t rgid, gid_t egid) ...@@ -529,7 +529,7 @@ asmlinkage long sys_setregid(gid_t rgid, gid_t egid)
* *
* SMP: Same implicit races as above. * SMP: Same implicit races as above.
*/ */
asmlinkage long sys_setgid(gid_t gid) SYSCALL_DEFINE1(setgid, gid_t, gid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -597,7 +597,7 @@ static int set_user(struct cred *new) ...@@ -597,7 +597,7 @@ static int set_user(struct cred *new)
* 100% compatible with BSD. A program which uses just setuid() will be * 100% compatible with BSD. A program which uses just setuid() will be
* 100% compatible with POSIX with saved IDs. * 100% compatible with POSIX with saved IDs.
*/ */
asmlinkage long sys_setreuid(uid_t ruid, uid_t euid) SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -661,7 +661,7 @@ asmlinkage long sys_setreuid(uid_t ruid, uid_t euid) ...@@ -661,7 +661,7 @@ asmlinkage long sys_setreuid(uid_t ruid, uid_t euid)
* will allow a root program to temporarily drop privileges and be able to * will allow a root program to temporarily drop privileges and be able to
* regain them by swapping the real and effective uid. * regain them by swapping the real and effective uid.
*/ */
asmlinkage long sys_setuid(uid_t uid) SYSCALL_DEFINE1(setuid, uid_t, uid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -705,7 +705,7 @@ asmlinkage long sys_setuid(uid_t uid) ...@@ -705,7 +705,7 @@ asmlinkage long sys_setuid(uid_t uid)
* This function implements a generic ability to update ruid, euid, * This function implements a generic ability to update ruid, euid,
* and suid. This allows you to implement the 4.4 compatible seteuid(). * and suid. This allows you to implement the 4.4 compatible seteuid().
*/ */
asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid) SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -771,7 +771,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __u ...@@ -771,7 +771,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __u
/* /*
* Same as above, but for rgid, egid, sgid. * Same as above, but for rgid, egid, sgid.
*/ */
asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid) SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -833,7 +833,7 @@ SYSCALL_DEFINE3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __u ...@@ -833,7 +833,7 @@ SYSCALL_DEFINE3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __u
* whatever uid it wants to). It normally shadows "euid", except when * whatever uid it wants to). It normally shadows "euid", except when
* explicitly set by setfsuid() or for access.. * explicitly set by setfsuid() or for access..
*/ */
asmlinkage long sys_setfsuid(uid_t uid) SYSCALL_DEFINE1(setfsuid, uid_t, uid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -870,7 +870,7 @@ asmlinkage long sys_setfsuid(uid_t uid) ...@@ -870,7 +870,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
/* /*
* Samma på svenska.. * Samma på svenska..
*/ */
asmlinkage long sys_setfsgid(gid_t gid) SYSCALL_DEFINE1(setfsgid, gid_t, gid)
{ {
const struct cred *old; const struct cred *old;
struct cred *new; struct cred *new;
...@@ -1311,7 +1311,7 @@ int set_current_groups(struct group_info *group_info) ...@@ -1311,7 +1311,7 @@ int set_current_groups(struct group_info *group_info)
EXPORT_SYMBOL(set_current_groups); EXPORT_SYMBOL(set_current_groups);
asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist) SYSCALL_DEFINE2(getgroups, int, gidsetsize, gid_t __user *, grouplist)
{ {
const struct cred *cred = current_cred(); const struct cred *cred = current_cred();
int i; int i;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册