add linux setfs[ug]id syscall wrappers
authorRich Felker <dalias@aerifal.cx>
Sun, 29 Jan 2012 02:09:50 +0000 (21:09 -0500)
committerRich Felker <dalias@aerifal.cx>
Sun, 29 Jan 2012 02:09:50 +0000 (21:09 -0500)
patch by Jeremy Huntwork

include/sys/fsuid.h [new file with mode: 0644]
src/linux/setfsgid.c [new file with mode: 0644]
src/linux/setfsuid.c [new file with mode: 0644]

diff --git a/include/sys/fsuid.h b/include/sys/fsuid.h
new file mode 100644 (file)
index 0000000..f62184c
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef        _FSUID_H
+#define        _FSUID_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define __NEED_uid_t
+#define __NEED_gid_t
+
+#include <bits/alltypes.h>
+
+int setfsuid(uid_t);
+int setfsgid(gid_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/linux/setfsgid.c b/src/linux/setfsgid.c
new file mode 100644 (file)
index 0000000..a7ed9e9
--- /dev/null
@@ -0,0 +1,8 @@
+#include <unistd.h>
+#include "syscall.h"
+#include "libc.h"
+
+int setfsgid(gid_t gid)
+{
+       return syscall(SYS_setfsgid, gid);
+}
diff --git a/src/linux/setfsuid.c b/src/linux/setfsuid.c
new file mode 100644 (file)
index 0000000..1509e0a
--- /dev/null
@@ -0,0 +1,8 @@
+#include <unistd.h>
+#include "syscall.h"
+#include "libc.h"
+
+int setfsuid(uid_t uid)
+{
+       return syscall(SYS_setfsuid, uid);
+}