git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
s390: fix handling of -1 in set{,fs}[gu]id16 syscalls
[pandora-kernel.git]
/
arch
/
s390
/
kernel
/
compat_linux.c
diff --git
a/arch/s390/kernel/compat_linux.c
b/arch/s390/kernel/compat_linux.c
index
84a9828
..
93ce6de
100644
(file)
--- a/
arch/s390/kernel/compat_linux.c
+++ b/
arch/s390/kernel/compat_linux.c
@@
-114,7
+114,7
@@
asmlinkage long sys32_setregid16(u16 rgid, u16 egid)
asmlinkage long sys32_setgid16(u16 gid)
{
asmlinkage long sys32_setgid16(u16 gid)
{
- return sys_setgid(
(gid_t)gid
);
+ return sys_setgid(
low2highgid(gid)
);
}
asmlinkage long sys32_setreuid16(u16 ruid, u16 euid)
}
asmlinkage long sys32_setreuid16(u16 ruid, u16 euid)
@@
-124,7
+124,7
@@
asmlinkage long sys32_setreuid16(u16 ruid, u16 euid)
asmlinkage long sys32_setuid16(u16 uid)
{
asmlinkage long sys32_setuid16(u16 uid)
{
- return sys_setuid(
(uid_t)uid
);
+ return sys_setuid(
low2highuid(uid)
);
}
asmlinkage long sys32_setresuid16(u16 ruid, u16 euid, u16 suid)
}
asmlinkage long sys32_setresuid16(u16 ruid, u16 euid, u16 suid)
@@
-163,12
+163,12
@@
asmlinkage long sys32_getresgid16(u16 __user *rgid, u16 __user *egid, u16 __user
asmlinkage long sys32_setfsuid16(u16 uid)
{
asmlinkage long sys32_setfsuid16(u16 uid)
{
- return sys_setfsuid(
(uid_t)uid
);
+ return sys_setfsuid(
low2highuid(uid)
);
}
asmlinkage long sys32_setfsgid16(u16 gid)
{
}
asmlinkage long sys32_setfsgid16(u16 gid)
{
- return sys_setfsgid(
(gid_t)gid
);
+ return sys_setfsgid(
low2highgid(gid)
);
}
static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info)
}
static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info)
@@
-242,6
+242,7
@@
asmlinkage long sys32_setgroups16(int gidsetsize, u16 __user *grouplist)
return retval;
}
return retval;
}
+ groups_sort(group_info);
retval = set_current_groups(group_info);
put_group_info(group_info);
retval = set_current_groups(group_info);
put_group_info(group_info);
@@
-615,7
+616,6
@@
asmlinkage unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg)
return -EFAULT;
if (a.offset & ~PAGE_MASK)
return -EINVAL;
return -EFAULT;
if (a.offset & ~PAGE_MASK)
return -EINVAL;
- a.addr = (unsigned long) compat_ptr(a.addr);
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
a.offset >> PAGE_SHIFT);
}
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
a.offset >> PAGE_SHIFT);
}
@@
-626,7
+626,6
@@
asmlinkage long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg)
if (copy_from_user(&a, arg, sizeof(a)))
return -EFAULT;
if (copy_from_user(&a, arg, sizeof(a)))
return -EFAULT;
- a.addr = (unsigned long) compat_ptr(a.addr);
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset);
}
return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset);
}