فهرست منبع

add legacy euidaccess function and eaccess alias for it

this is mainly for ABI compat purposes.
Rich Felker 11 سال پیش
والد
کامیت
a89aaee110
1فایلهای تغییر یافته به همراه18 افزوده شده و 0 حذف شده
  1. 18 0
      src/legacy/euidaccess.c

+ 18 - 0
src/legacy/euidaccess.c

@@ -0,0 +1,18 @@
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include "syscall.h"
+#include "libc.h"
+
+int euidaccess(const char *filename, int amode)
+{
+	int ret = __syscall(SYS_faccessat, AT_FDCWD, filename, amode, AT_EACCESS);
+	if (ret != -ENOSYS) return __syscall_ret(ret);
+
+	if (getuid() == geteuid() && getgid() == getegid())
+		return syscall(SYS_access, filename, amode);
+
+	return __syscall_ret(-ENOSYS);
+}
+
+weak_alias(euidaccess, eaccess);