Be a little more anal about the definition of these...
diff --git a/klibc/setresgid.c b/klibc/setresgid.c
index 5a6634e..f1a8c6b 100644
--- a/klibc/setresgid.c
+++ b/klibc/setresgid.c
@@ -15,11 +15,15 @@
int setresgid(gid_t a0, gid_t a1, gid_t a2)
{
- uint32_t x0 = (a0 == (gid_t)-1) ? (uint32_t)-1 : a0;
- uint32_t x1 = (a1 == (gid_t)-1) ? (uint32_t)-1 : a1;
- uint32_t x2 = (a2 == (gid_t)-1) ? (uint32_t)-1 : a2;
-
- return setresgid32(x0,x1,x2);
+ if ( sizeof(gid_t) == sizeof(uint32_t) ) {
+ return setresgid32(a0,a1,a2);
+ } else {
+ uint32_t x0 = (a0 == (gid_t)-1) ? (uint32_t)-1 : a0;
+ uint32_t x1 = (a1 == (gid_t)-1) ? (uint32_t)-1 : a1;
+ uint32_t x2 = (a2 == (gid_t)-1) ? (uint32_t)-1 : a2;
+
+ return setresgid32(x0,x1,x2);
+ }
}
#endif
diff --git a/klibc/setresuid.c b/klibc/setresuid.c
index 5a4a62c..a587acb 100644
--- a/klibc/setresuid.c
+++ b/klibc/setresuid.c
@@ -15,11 +15,15 @@
int setresuid(uid_t a0, uid_t a1, uid_t a2)
{
- uint32_t x0 = (a0 == (uid_t)-1) ? (uint32_t)-1 : a0;
- uint32_t x1 = (a1 == (uid_t)-1) ? (uint32_t)-1 : a1;
- uint32_t x2 = (a2 == (uid_t)-1) ? (uint32_t)-1 : a2;
-
- return setresuid32(x0,x1,x2);
+ if ( sizeof(uid_t) == sizeof(uint32_t) ) {
+ return setresuid32(a0,a1,a2);
+ } else {
+ uint32_t x0 = (a0 == (uid_t)-1) ? (uint32_t)-1 : a0;
+ uint32_t x1 = (a1 == (uid_t)-1) ? (uint32_t)-1 : a1;
+ uint32_t x2 = (a2 == (uid_t)-1) ? (uint32_t)-1 : a2;
+
+ return setresuid32(x0,x1,x2);
+ }
}
#endif