std: fix linux uid_t, use uid_t/gid_t in std.os
- correct uid_t from i32 to u32 on linux - define uid_t and gid_t for OSes missing definitions - use uid_t/gid_t instead of plain u32s throughout std.os
This commit is contained in:
@@ -655,7 +655,7 @@ pub fn nanosleep(req: *const timespec, rem: ?*timespec) usize {
|
||||
return syscall2(.nanosleep, @ptrToInt(req), @ptrToInt(rem));
|
||||
}
|
||||
|
||||
pub fn setuid(uid: u32) usize {
|
||||
pub fn setuid(uid: uid_t) usize {
|
||||
if (@hasField(SYS, "setuid32")) {
|
||||
return syscall1(.setuid32, uid);
|
||||
} else {
|
||||
@@ -663,7 +663,7 @@ pub fn setuid(uid: u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setgid(gid: u32) usize {
|
||||
pub fn setgid(gid: gid_t) usize {
|
||||
if (@hasField(SYS, "setgid32")) {
|
||||
return syscall1(.setgid32, gid);
|
||||
} else {
|
||||
@@ -671,7 +671,7 @@ pub fn setgid(gid: u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setreuid(ruid: u32, euid: u32) usize {
|
||||
pub fn setreuid(ruid: uid_t, euid: uid_t) usize {
|
||||
if (@hasField(SYS, "setreuid32")) {
|
||||
return syscall2(.setreuid32, ruid, euid);
|
||||
} else {
|
||||
@@ -679,7 +679,7 @@ pub fn setreuid(ruid: u32, euid: u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setregid(rgid: u32, egid: u32) usize {
|
||||
pub fn setregid(rgid: gid_t, egid: gid_t) usize {
|
||||
if (@hasField(SYS, "setregid32")) {
|
||||
return syscall2(.setregid32, rgid, egid);
|
||||
} else {
|
||||
@@ -687,47 +687,47 @@ pub fn setregid(rgid: u32, egid: u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn getuid() u32 {
|
||||
pub fn getuid() uid_t {
|
||||
if (@hasField(SYS, "getuid32")) {
|
||||
return @as(u32, syscall0(.getuid32));
|
||||
return @as(uid_t, syscall0(.getuid32));
|
||||
} else {
|
||||
return @as(u32, syscall0(.getuid));
|
||||
return @as(uid_t, syscall0(.getuid));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn getgid() u32 {
|
||||
pub fn getgid() gid_t {
|
||||
if (@hasField(SYS, "getgid32")) {
|
||||
return @as(u32, syscall0(.getgid32));
|
||||
return @as(gid_t, syscall0(.getgid32));
|
||||
} else {
|
||||
return @as(u32, syscall0(.getgid));
|
||||
return @as(gid_t, syscall0(.getgid));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn geteuid() u32 {
|
||||
pub fn geteuid() uid_t {
|
||||
if (@hasField(SYS, "geteuid32")) {
|
||||
return @as(u32, syscall0(.geteuid32));
|
||||
return @as(uid_t, syscall0(.geteuid32));
|
||||
} else {
|
||||
return @as(u32, syscall0(.geteuid));
|
||||
return @as(uid_t, syscall0(.geteuid));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn getegid() u32 {
|
||||
pub fn getegid() gid_t {
|
||||
if (@hasField(SYS, "getegid32")) {
|
||||
return @as(u32, syscall0(.getegid32));
|
||||
return @as(gid_t, syscall0(.getegid32));
|
||||
} else {
|
||||
return @as(u32, syscall0(.getegid));
|
||||
return @as(gid_t, syscall0(.getegid));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn seteuid(euid: u32) usize {
|
||||
return setreuid(std.math.maxInt(u32), euid);
|
||||
pub fn seteuid(euid: uid_t) usize {
|
||||
return setresuid(std.math.maxInt(uid_t), euid);
|
||||
}
|
||||
|
||||
pub fn setegid(egid: u32) usize {
|
||||
return setregid(std.math.maxInt(u32), egid);
|
||||
pub fn setegid(egid: gid_t) usize {
|
||||
return setregid(std.math.maxInt(gid_t), egid);
|
||||
}
|
||||
|
||||
pub fn getresuid(ruid: *u32, euid: *u32, suid: *u32) usize {
|
||||
pub fn getresuid(ruid: *uid_t, euid: *uid_t, suid: *uid_t) usize {
|
||||
if (@hasField(SYS, "getresuid32")) {
|
||||
return syscall3(.getresuid32, @ptrToInt(ruid), @ptrToInt(euid), @ptrToInt(suid));
|
||||
} else {
|
||||
@@ -735,7 +735,7 @@ pub fn getresuid(ruid: *u32, euid: *u32, suid: *u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn getresgid(rgid: *u32, egid: *u32, sgid: *u32) usize {
|
||||
pub fn getresgid(rgid: *gid_t, egid: *gid_t, sgid: *gid_t) usize {
|
||||
if (@hasField(SYS, "getresgid32")) {
|
||||
return syscall3(.getresgid32, @ptrToInt(rgid), @ptrToInt(egid), @ptrToInt(sgid));
|
||||
} else {
|
||||
@@ -743,7 +743,7 @@ pub fn getresgid(rgid: *u32, egid: *u32, sgid: *u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setresuid(ruid: u32, euid: u32, suid: u32) usize {
|
||||
pub fn setresuid(ruid: uid_t, euid: uid_t, suid: uid_t) usize {
|
||||
if (@hasField(SYS, "setresuid32")) {
|
||||
return syscall3(.setresuid32, ruid, euid, suid);
|
||||
} else {
|
||||
@@ -751,7 +751,7 @@ pub fn setresuid(ruid: u32, euid: u32, suid: u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setresgid(rgid: u32, egid: u32, sgid: u32) usize {
|
||||
pub fn setresgid(rgid: gid_t, egid: gid_t, sgid: gid_t) usize {
|
||||
if (@hasField(SYS, "setresgid32")) {
|
||||
return syscall3(.setresgid32, rgid, egid, sgid);
|
||||
} else {
|
||||
@@ -759,7 +759,7 @@ pub fn setresgid(rgid: u32, egid: u32, sgid: u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn getgroups(size: usize, list: *u32) usize {
|
||||
pub fn getgroups(size: usize, list: *gid_t) usize {
|
||||
if (@hasField(SYS, "getgroups32")) {
|
||||
return syscall2(.getgroups32, size, @ptrToInt(list));
|
||||
} else {
|
||||
@@ -767,7 +767,7 @@ pub fn getgroups(size: usize, list: *u32) usize {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn setgroups(size: usize, list: *const u32) usize {
|
||||
pub fn setgroups(size: usize, list: *const gid_t) usize {
|
||||
if (@hasField(SYS, "setgroups32")) {
|
||||
return syscall2(.setgroups32, size, @ptrToInt(list));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user