aboutsummaryrefslogtreecommitdiffstats
path: root/guts/fchownat.c
diff options
context:
space:
mode:
Diffstat (limited to 'guts/fchownat.c')
-rw-r--r--guts/fchownat.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/guts/fchownat.c b/guts/fchownat.c
deleted file mode 100644
index f006efe..0000000
--- a/guts/fchownat.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2008-2010 Wind River Systems; see
- * guts/COPYRIGHT for information.
- *
- * static int
- * wrap_fchownat(int dirfd, const char *path, uid_t owner, gid_t group, int flags) {
- * int rc = -1;
- */
- pseudo_msg_t *msg;
- struct stat64 buf;
- int save_errno;
- int doing_link = 0;
-
-#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
- if (dirfd != AT_FDCWD) {
- errno = ENOSYS;
- return -1;
- }
- if (flags & AT_SYMLINK_NOFOLLOW) {
- rc = real___lxstat64(_STAT_VER, path, &buf);
- } else {
- rc = real___xstat64(_STAT_VER, path, &buf);
- }
-#else
- rc = real___fxstatat64(_STAT_VER, dirfd, path, &buf, flags);
-#endif
- if (rc == -1) {
- return rc;
- }
- /* pseudo won't track the ownership, here */
- if (S_ISLNK(buf.st_mode)) {
- doing_link = 1;
- }
- save_errno = errno;
-
- if (owner == (uid_t) -1 || group == (gid_t) -1) {
- msg = pseudo_client_op(OP_STAT, 0, -1, -1, path, &buf);
- /* copy in any existing values... */
- if (msg) {
- if (msg->result == RESULT_SUCCEED) {
- pseudo_stat_msg(&buf, msg);
- } else {
- pseudo_debug(2, "chownat to %d:%d on %d/%s, ino %llu, new file.\n",
- owner, group, dirfd, path,
- (unsigned long long) buf.st_ino);
- }
- }
- }
- /* now override with arguments */
- if (owner != (uid_t) -1) {
- buf.st_uid = owner;
- }
- if (group != (gid_t) -1) {
- buf.st_gid = group;
- }
- msg = pseudo_client_op(OP_CHOWN, 0, -1, dirfd, path, &buf);
- if (!msg) {
- errno = ENOSYS;
- rc = -1;
- } else if (msg->result != RESULT_SUCCEED) {
- errno = EPERM;
- rc = -1;
- } else {
- rc = 0;
- }
-
-/* return rc;
- * }
- */