diff options
Diffstat (limited to 'guts')
-rw-r--r-- | guts/__fxstat64.c | 2 | ||||
-rw-r--r-- | guts/__fxstatat64.c | 2 | ||||
-rw-r--r-- | guts/__xmknodat.c | 4 | ||||
-rw-r--r-- | guts/chdir.c | 2 | ||||
-rw-r--r-- | guts/chroot.c | 2 | ||||
-rw-r--r-- | guts/close.c | 2 | ||||
-rw-r--r-- | guts/dup.c | 2 | ||||
-rw-r--r-- | guts/dup2.c | 4 | ||||
-rw-r--r-- | guts/fchdir.c | 2 | ||||
-rw-r--r-- | guts/fchmod.c | 4 | ||||
-rw-r--r-- | guts/fchmodat.c | 6 | ||||
-rw-r--r-- | guts/fchown.c | 6 | ||||
-rw-r--r-- | guts/fchownat.c | 6 | ||||
-rw-r--r-- | guts/fclose.c | 2 | ||||
-rw-r--r-- | guts/fcntl.c | 2 | ||||
-rw-r--r-- | guts/fopen.c | 6 | ||||
-rw-r--r-- | guts/fopen64.c | 6 | ||||
-rw-r--r-- | guts/freopen.c | 6 | ||||
-rw-r--r-- | guts/freopen64.c | 6 | ||||
-rw-r--r-- | guts/link.c | 4 | ||||
-rw-r--r-- | guts/mkdirat.c | 2 | ||||
-rw-r--r-- | guts/mkdtemp.c | 2 | ||||
-rw-r--r-- | guts/mkstemp.c | 6 | ||||
-rw-r--r-- | guts/openat.c | 6 | ||||
-rw-r--r-- | guts/rename.c | 8 | ||||
-rw-r--r-- | guts/rmdir.c | 2 | ||||
-rw-r--r-- | guts/symlinkat.c | 2 | ||||
-rw-r--r-- | guts/unlinkat.c | 2 |
28 files changed, 53 insertions, 53 deletions
diff --git a/guts/__fxstat64.c b/guts/__fxstat64.c index 2e7919c..59f8a59 100644 --- a/guts/__fxstat64.c +++ b/guts/__fxstat64.c @@ -16,7 +16,7 @@ errno = save_errno; return rc; } - msg = pseudo_client_op(OP_FSTAT, fd, -1, 0, buf); + msg = pseudo_client_op(OP_FSTAT, 0, fd, -1, 0, buf); if (msg) { if (msg->result == RESULT_SUCCEED) pseudo_stat_msg(buf, msg); diff --git a/guts/__fxstatat64.c b/guts/__fxstatat64.c index b8054f2..349b48e 100644 --- a/guts/__fxstatat64.c +++ b/guts/__fxstatat64.c @@ -56,7 +56,7 @@ * note that symlink canonicalizing is now automatic, so we * don't need to check for a symlink on this end */ - msg = pseudo_client_op(OP_STAT, -1, dirfd, path, buf); + msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, path, buf); if (msg) { pseudo_stat_msg(buf, msg); if (save_mode) { diff --git a/guts/__xmknodat.c b/guts/__xmknodat.c index 6bd0761..cca6a96 100644 --- a/guts/__xmknodat.c +++ b/guts/__xmknodat.c @@ -44,12 +44,12 @@ buf.st_mode = (PSEUDO_DB_MODE(buf.st_mode, mode) & 07777) | (mode & ~07777); buf.st_rdev = *dev; - msg = pseudo_client_op(OP_MKNOD, -1, dirfd, path, &buf); + msg = pseudo_client_op(OP_MKNOD, 0, -1, dirfd, path, &buf); if (!msg) { errno = ENOSYS; rc = -1; } else if (msg->result != RESULT_SUCCEED) { - errno = msg->xerrno; + errno = EPERM; rc = -1; } else { rc = 0; diff --git a/guts/chdir.c b/guts/chdir.c index ca48738..2cc9019 100644 --- a/guts/chdir.c +++ b/guts/chdir.c @@ -13,7 +13,7 @@ rc = real_chdir(path); if (rc != -1) { - pseudo_client_op(OP_CHDIR, -1, -1, path, 0); + pseudo_client_op(OP_CHDIR, 0, -1, -1, path, 0); } /* return rc; diff --git a/guts/chroot.c b/guts/chroot.c index 5f68482..14f5043 100644 --- a/guts/chroot.c +++ b/guts/chroot.c @@ -4,7 +4,7 @@ * int rc = -1; */ pseudo_debug(2, "chroot: %s\n", path); - if (!pseudo_client_op(OP_CHROOT, -1, -1, path, 0)) { + if (!pseudo_client_op(OP_CHROOT, 0, -1, -1, path, 0)) { pseudo_debug(1, "chroot failed: %s\n", strerror(errno)); rc = -1; } else { diff --git a/guts/close.c b/guts/close.c index 34b279e..8edbee9 100644 --- a/guts/close.c +++ b/guts/close.c @@ -6,7 +6,7 @@ /* this cleans up an internal table, and shouldn't even * make it to the server. */ - pseudo_client_op(OP_CLOSE, fd, -1, 0, 0); + pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0); rc = real_close(fd); /* return rc; @@ -8,7 +8,7 @@ rc = real_dup(fd); save_errno = errno; pseudo_debug(2, "dup: %d->%d\n", fd, rc); - pseudo_client_op(OP_DUP, fd, rc, 0, 0); + pseudo_client_op(OP_DUP, 0, fd, rc, 0, 0); errno = save_errno; /* return rc; diff --git a/guts/dup2.c b/guts/dup2.c index 59d5293..360c3ad 100644 --- a/guts/dup2.c +++ b/guts/dup2.c @@ -8,10 +8,10 @@ /* close existing one first - this also causes the socket to the * server to get moved around if someone tries to overwrite it. */ pseudo_debug(2, "dup2: %d->%d\n", oldfd, newfd); - pseudo_client_op(OP_CLOSE, newfd, -1, 0, 0); + pseudo_client_op(OP_CLOSE, 0, newfd, -1, 0, 0); rc = real_dup2(oldfd, newfd); save_errno = errno; - pseudo_client_op(OP_DUP, oldfd, newfd, 0, 0); + pseudo_client_op(OP_DUP, 0, oldfd, newfd, 0, 0); errno = save_errno; /* return rc; diff --git a/guts/fchdir.c b/guts/fchdir.c index b255511..5289f4c 100644 --- a/guts/fchdir.c +++ b/guts/fchdir.c @@ -7,7 +7,7 @@ rc = real_fchdir(dirfd); if (rc != -1) { - pseudo_client_op(OP_CHDIR, -1, dirfd, 0, 0); + pseudo_client_op(OP_CHDIR, 0, -1, dirfd, 0, 0); } /* return rc; diff --git a/guts/fchmod.c b/guts/fchmod.c index 663a026..b479e8d 100644 --- a/guts/fchmod.c +++ b/guts/fchmod.c @@ -12,13 +12,13 @@ return -1; } buf.st_mode = (buf.st_mode & ~07777) | (mode & 07777); - msg = pseudo_client_op(OP_FCHMOD, fd, -1, 0, &buf); + msg = pseudo_client_op(OP_FCHMOD, 0, fd, -1, 0, &buf); real_fchmod(fd, PSEUDO_FS_MODE(mode)); if (!msg) { errno = ENOSYS; rc = -1; } else if (msg->result != RESULT_SUCCEED) { - errno = msg->xerrno; + errno = EPERM; rc = -1; } else { errno = save_errno; diff --git a/guts/fchmodat.c b/guts/fchmodat.c index 9804711..78637ee 100644 --- a/guts/fchmodat.c +++ b/guts/fchmodat.c @@ -33,7 +33,7 @@ /* purely for debugging purposes: check whether file * is already in database. */ - msg = pseudo_client_op(OP_STAT, -1, -1, path, &buf); + msg = pseudo_client_op(OP_STAT, 0, -1, -1, path, &buf); if (!msg || msg->result != RESULT_SUCCEED) { pseudo_debug(2, "chmodat to 0%o on %d/%s, ino %llu, new file.\n", mode, dirfd, path, (unsigned long long) buf.st_ino); @@ -54,12 +54,12 @@ */ buf.st_mode = (buf.st_mode & ~07777) | (mode & 07777); - msg = pseudo_client_op(OP_CHMOD, -1, dirfd, path, &buf); + msg = pseudo_client_op(OP_CHMOD, 0, -1, dirfd, path, &buf); if (!msg) { errno = ENOSYS; rc = -1; } else if (msg->result != RESULT_SUCCEED) { - errno = msg->xerrno; + errno = EPERM; rc = -1; } else { rc = 0; diff --git a/guts/fchown.c b/guts/fchown.c index 4e717ea..433d359 100644 --- a/guts/fchown.c +++ b/guts/fchown.c @@ -15,7 +15,7 @@ return -1; } if (owner == (uid_t) -1 || group == (gid_t) -1) { - msg = pseudo_client_op(OP_STAT, fd, -1, NULL, &buf); + msg = pseudo_client_op(OP_STAT, 0, fd, -1, NULL, &buf); /* copy in any existing values... */ if (msg) { if (msg->result == RESULT_SUCCEED) { @@ -38,12 +38,12 @@ } pseudo_debug(2, "fchown, fd %d: %d:%d -> %d:%d\n", fd, owner, group, buf.st_uid, buf.st_gid); - msg = pseudo_client_op(OP_FCHOWN, fd, -1, 0, &buf); + msg = pseudo_client_op(OP_FCHOWN, 0, fd, -1, 0, &buf); if (!msg) { errno = ENOSYS; rc = -1; } else if (msg->result != RESULT_SUCCEED) { - errno = msg->xerrno; + errno = EPERM; rc = -1; } else { rc = 0; diff --git a/guts/fchownat.c b/guts/fchownat.c index 23dac7b..fc81d4f 100644 --- a/guts/fchownat.c +++ b/guts/fchownat.c @@ -31,7 +31,7 @@ save_errno = errno; if (owner == (uid_t) -1 || group == (gid_t) -1) { - msg = pseudo_client_op(OP_STAT, -1, -1, path, &buf); + msg = pseudo_client_op(OP_STAT, 0, -1, -1, path, &buf); /* copy in any existing values... */ if (msg) { if (msg->result == RESULT_SUCCEED) { @@ -50,12 +50,12 @@ if (group != (gid_t) -1) { buf.st_gid = group; } - msg = pseudo_client_op(OP_CHOWN, -1, dirfd, path, &buf); + msg = pseudo_client_op(OP_CHOWN, 0, -1, dirfd, path, &buf); if (!msg) { errno = ENOSYS; rc = -1; } else if (msg->result != RESULT_SUCCEED) { - errno = msg->xerrno; + errno = EPERM; rc = -1; } else { rc = 0; diff --git a/guts/fclose.c b/guts/fclose.c index bcf4ace..e0c5681 100644 --- a/guts/fclose.c +++ b/guts/fclose.c @@ -9,7 +9,7 @@ return -1; } int fd = fileno(fp); - pseudo_client_op(OP_CLOSE, fd, -1, 0, 0); + pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0); rc = real_fclose(fp); /* return rc; diff --git a/guts/fcntl.c b/guts/fcntl.c index ec7277d..d03d40c 100644 --- a/guts/fcntl.c +++ b/guts/fcntl.c @@ -22,7 +22,7 @@ save_errno = errno; if (rc != -1) { pseudo_debug(2, "fcntl_dup: %d->%d\n", fd, rc); - pseudo_client_op(OP_DUP, fd, rc, 0, 0); + pseudo_client_op(OP_DUP, 0, fd, rc, 0, 0); } errno = save_errno; break; diff --git a/guts/fopen.c b/guts/fopen.c index 6495d69..69d9ce6 100644 --- a/guts/fopen.c +++ b/guts/fopen.c @@ -16,13 +16,13 @@ pseudo_debug(2, "fopen '%s': fd %d\n", path, fd); if (real___fxstat64(_STAT_VER, fd, &buf) != -1) { if (!existed) { - pseudo_client_op(OP_CREAT, -1, -1, path, &buf); + pseudo_client_op(OP_CREAT, 0, -1, -1, path, &buf); } - pseudo_client_op(OP_OPEN, fd, -1, path, &buf); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, &buf); } else { pseudo_debug(1, "fopen (fd %d) succeeded, but fstat failed (%s).\n", fd, strerror(errno)); - pseudo_client_op(OP_OPEN, fd, -1, path, 0); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, 0); } errno = save_errno; } diff --git a/guts/fopen64.c b/guts/fopen64.c index c6de09c..c2286f2 100644 --- a/guts/fopen64.c +++ b/guts/fopen64.c @@ -17,13 +17,13 @@ pseudo_debug(2, "fopen64 '%s': fd %d\n", path, fd); if (real___fxstat64(_STAT_VER, fd, &buf) != -1) { if (!existed) { - pseudo_client_op(OP_CREAT, -1, -1, path, &buf); + pseudo_client_op(OP_CREAT, 0, -1, -1, path, &buf); } - pseudo_client_op(OP_OPEN, fd, -1, path, &buf); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, &buf); } else { pseudo_debug(1, "fopen64 (fd %d) succeeded, but fstat failed (%s).\n", fd, strerror(errno)); - pseudo_client_op(OP_OPEN, fd, -1, path, 0); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, 0); } errno = save_errno; } diff --git a/guts/freopen.c b/guts/freopen.c index 92c9d87..2701926 100644 --- a/guts/freopen.c +++ b/guts/freopen.c @@ -16,13 +16,13 @@ pseudo_debug(2, "freopen '%s': fd %d\n", path, fd); if (real___fxstat64(_STAT_VER, fd, &buf) != -1) { if (!existed) { - pseudo_client_op(OP_CREAT, -1, -1, path, &buf); + pseudo_client_op(OP_CREAT, 0, -1, -1, path, &buf); } - pseudo_client_op(OP_OPEN, fd, -1, path, &buf); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, &buf); } else { pseudo_debug(1, "fopen (fd %d) succeeded, but stat failed (%s).\n", fd, strerror(errno)); - pseudo_client_op(OP_OPEN, fd, -1, path, 0); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, 0); } errno = save_errno; } diff --git a/guts/freopen64.c b/guts/freopen64.c index 1f83b07..7487a7b 100644 --- a/guts/freopen64.c +++ b/guts/freopen64.c @@ -16,13 +16,13 @@ pseudo_debug(2, "freopen64 '%s': fd %d\n", path, fd); if (real___fxstat64(_STAT_VER, fd, &buf) != -1) { if (!existed) { - pseudo_client_op(OP_CREAT, -1, -1, path, &buf); + pseudo_client_op(OP_CREAT, 0, -1, -1, path, &buf); } - pseudo_client_op(OP_OPEN, fd, -1, path, &buf); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, &buf); } else { pseudo_debug(1, "fopen (fd %d) succeeded, but stat failed (%s).\n", fd, strerror(errno)); - pseudo_client_op(OP_OPEN, fd, -1, path, 0); + pseudo_client_op(OP_OPEN, pseudo_access_fopen(mode), fd, -1, path, 0); } errno = save_errno; } diff --git a/guts/link.c b/guts/link.c index a68a1c1..278edd7 100644 --- a/guts/link.c +++ b/guts/link.c @@ -17,11 +17,11 @@ * there is one. OP_LINK is also used to insert unseen * files, though, so it can't be implicit. */ - msg = pseudo_client_op(OP_STAT, -1, -1, oldpath, &buf); + msg = pseudo_client_op(OP_STAT, 0, -1, -1, oldpath, &buf); if (msg) { pseudo_stat_msg(&buf, msg); } - pseudo_client_op(OP_LINK, -1, -1, newpath, &buf); + pseudo_client_op(OP_LINK, 0, -1, -1, newpath, &buf); } /* return rc; diff --git a/guts/mkdirat.c b/guts/mkdirat.c index 188e66b..80ca5a0 100644 --- a/guts/mkdirat.c +++ b/guts/mkdirat.c @@ -22,7 +22,7 @@ stat_rc = real___fxstatat64(_STAT_VER, dirfd, path, &buf, AT_SYMLINK_NOFOLLOW); #endif if (stat_rc != -1) { - pseudo_client_op(OP_MKDIR, -1, dirfd, path, &buf); + pseudo_client_op(OP_MKDIR, 0, -1, dirfd, path, &buf); } else { pseudo_debug(1, "mkdir of %s succeeded, but stat failed: %s\n", path, strerror(errno)); diff --git a/guts/mkdtemp.c b/guts/mkdtemp.c index 32fe4ef..3c97118 100644 --- a/guts/mkdtemp.c +++ b/guts/mkdtemp.c @@ -27,7 +27,7 @@ save_errno = errno; if (real___xstat64(_STAT_VER, rc, &buf) != -1) { - pseudo_client_op(OP_CREAT, -1, -1, tmp_template, &buf); + pseudo_client_op(OP_CREAT, 0, -1, -1, tmp_template, &buf); } else { pseudo_debug(1, "mkstemp (path %s) succeeded, but fstat failed (%s).\n", rc, strerror(errno)); diff --git a/guts/mkstemp.c b/guts/mkstemp.c index a8f5915..ee8c742 100644 --- a/guts/mkstemp.c +++ b/guts/mkstemp.c @@ -27,12 +27,12 @@ save_errno = errno; if (real___fxstat64(_STAT_VER, rc, &buf) != -1) { - pseudo_client_op(OP_CREAT, -1, -1, tmp_template, &buf); - pseudo_client_op(OP_OPEN, rc, -1, tmp_template, &buf); + pseudo_client_op(OP_CREAT, 0, -1, -1, tmp_template, &buf); + pseudo_client_op(OP_OPEN, PSA_READ | PSA_WRITE, rc, -1, tmp_template, &buf); } else { pseudo_debug(1, "mkstemp (fd %d) succeeded, but fstat failed (%s).\n", rc, strerror(errno)); - pseudo_client_op(OP_OPEN, rc, -1, tmp_template, 0); + pseudo_client_op(OP_OPEN, PSA_READ | PSA_WRITE, rc, -1, tmp_template, 0); } errno = save_errno; } diff --git a/guts/openat.c b/guts/openat.c index 801f1e3..20d8d8d 100644 --- a/guts/openat.c +++ b/guts/openat.c @@ -48,13 +48,13 @@ if (stat_rc != -1) { buf.st_mode = PSEUDO_DB_MODE(buf.st_mode, mode); if (!existed) { - pseudo_client_op(OP_CREAT, -1, dirfd, path, &buf); + pseudo_client_op(OP_CREAT, 0, -1, dirfd, path, &buf); } - pseudo_client_op(OP_OPEN, rc, dirfd, path, &buf); + pseudo_client_op(OP_OPEN, PSEUDO_ACCESS(flags), rc, dirfd, path, &buf); } else { pseudo_debug(1, "openat (fd %d, path %d/%s, flags %d) succeeded, but stat failed (%s).\n", rc, dirfd, path, flags, strerror(errno)); - pseudo_client_op(OP_OPEN, rc, dirfd, path, 0); + pseudo_client_op(OP_OPEN, PSEUDO_ACCESS(flags), rc, dirfd, path, 0); } errno = save_errno; } diff --git a/guts/rename.c b/guts/rename.c index 117eb78..4ed3527 100644 --- a/guts/rename.c +++ b/guts/rename.c @@ -53,10 +53,10 @@ */ /* newpath must be removed. */ - pseudo_client_op(OP_UNLINK, -1, -1, newpath, &newbuf); + pseudo_client_op(OP_UNLINK, 0, -1, -1, newpath, &newbuf); /* fill in "correct" details from server */ - msg = pseudo_client_op(OP_STAT, -1, -1, oldpath, &oldbuf); + msg = pseudo_client_op(OP_STAT, 0, -1, -1, oldpath, &oldbuf); if (msg && msg->result == RESULT_SUCCEED) { pseudo_stat_msg(&oldbuf, msg); pseudo_debug(1, "renaming %s, got old mode of 0%o\n", oldpath, (int) msg->mode); @@ -67,9 +67,9 @@ */ pseudo_debug(1, "renaming new '%s' [%llu]\n", oldpath, (unsigned long long) oldbuf.st_ino); - pseudo_client_op(OP_LINK, -1, -1, oldpath, &oldbuf); + pseudo_client_op(OP_LINK, 0, -1, -1, oldpath, &oldbuf); } - pseudo_client_op(OP_RENAME, -1, -1, newpath, &oldbuf, oldpath); + pseudo_client_op(OP_RENAME, 0, -1, -1, newpath, &oldbuf, oldpath); errno = save_errno; /* return rc; diff --git a/guts/rmdir.c b/guts/rmdir.c index 94de46a..d69fb7e 100644 --- a/guts/rmdir.c +++ b/guts/rmdir.c @@ -13,7 +13,7 @@ rc = real_rmdir(path); save_errno = errno; if (rc != -1) { - pseudo_client_op(OP_UNLINK, -1, -1, path, &buf); + pseudo_client_op(OP_UNLINK, 0, -1, -1, path, &buf); } errno = save_errno; diff --git a/guts/symlinkat.c b/guts/symlinkat.c index 577b1e7..ca12cd5 100644 --- a/guts/symlinkat.c +++ b/guts/symlinkat.c @@ -40,7 +40,7 @@ return rc; } /* just record the entry */ - pseudo_client_op(OP_SYMLINK, -1, dirfd, newpath, &buf); + pseudo_client_op(OP_SYMLINK, 0, -1, dirfd, newpath, &buf); free(roldname); diff --git a/guts/unlinkat.c b/guts/unlinkat.c index 1c2868a..4f5b363 100644 --- a/guts/unlinkat.c +++ b/guts/unlinkat.c @@ -35,7 +35,7 @@ rc = real_unlinkat(dirfd, path, rflags); #endif if (rc != -1) { - pseudo_client_op(OP_UNLINK, -1, dirfd, path, &buf); + pseudo_client_op(OP_UNLINK, 0, -1, dirfd, path, &buf); } /* return rc; |