mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
[CVE-2009-0029] System call wrappers part 03
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
dbf040d9d1
commit
ae1251ab78
1 changed files with 9 additions and 9 deletions
18
kernel/sys.c
18
kernel/sys.c
|
@ -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 @@ error:
|
||||||
*
|
*
|
||||||
* 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)
|
||||||
* 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 @@ error:
|
||||||
* 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 @@ error:
|
||||||
* 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
|
||||||
/*
|
/*
|
||||||
* 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
|
||||||
* 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 @@ change_okay:
|
||||||
/*
|
/*
|
||||||
* 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)
|
||||||
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue