diff options
-rw-r--r-- | ChangeLog.txt | 3 | ||||
-rw-r--r-- | ports/linux/wrapfuncs.in | 12 |
2 files changed, 9 insertions, 6 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt index 81e3584..329b262 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,6 @@ +2019-08-01: + * (seebs) Pass flags|O_NOFOLLOW on when resolving paths with openat. + 2019-05-15: * (RP) Add SDPX license headers to source files. diff --git a/ports/linux/wrapfuncs.in b/ports/linux/wrapfuncs.in index a129eba..4cdbc9c 100644 --- a/ports/linux/wrapfuncs.in +++ b/ports/linux/wrapfuncs.in @@ -1,12 +1,12 @@ -int open(const char *path, int flags, ...{mode_t mode}); /* flags=0 */ +int open(const char *path, int flags, ...{mode_t mode}); /* flags=flags|O_NOFOLLOW */ char *get_current_dir_name(void); int __xstat(int ver, const char *path, struct stat *buf); int __lxstat(int ver, const char *path, struct stat *buf); /* flags=AT_SYMLINK_NOFOLLOW */ int __fxstat(int ver, int fd, struct stat *buf); int lchown(const char *path, uid_t owner, gid_t group); /* flags=AT_SYMLINK_NOFOLLOW */ int __fxstatat(int ver, int dirfd, const char *path, struct stat *buf, int flags); -int openat(int dirfd, const char *path, int flags, ...{mode_t mode}); /* flags=0 */ -int __openat_2(int dirfd, const char *path, int flags); /* flags=0 */ +int openat(int dirfd, const char *path, int flags, ...{mode_t mode}); /* flags=flags|O_NOFOLLOW */ +int __openat_2(int dirfd, const char *path, int flags); /* flags=flags|O_NOFOLLOW */ int mknod(const char *path, mode_t mode, dev_t dev); /* real_func=pseudo_mknod */ int mknodat(int dirfd, const char *path, mode_t mode, dev_t dev); /* real_func=pseudo_mknodat */ int __xmknod(int ver, const char *path, mode_t mode, dev_t *dev); /* flags=AT_SYMLINK_NOFOLLOW */ @@ -15,9 +15,9 @@ int fcntl(int fd, int cmd, ...{struct flock *lock}); # just so we know the inums of symlinks char *canonicalize_file_name(const char *filename); int eaccess(const char *path, int mode); -int open64(const char *path, int flags, ...{mode_t mode}); /* flags=0 */ -int openat64(int dirfd, const char *path, int flags, ...{mode_t mode}); /* flags=0 */ -int __openat64_2(int dirfd, const char *path, int flags); /* flags=0 */ +int open64(const char *path, int flags, ...{mode_t mode}); /* flags=flags|O_NOFOLLOW */ +int openat64(int dirfd, const char *path, int flags, ...{mode_t mode}); /* flags=flags|O_NOFOLLOW */ +int __openat64_2(int dirfd, const char *path, int flags); /* flags=flags|O_NOFOLLOW */ int creat64(const char *path, mode_t mode); int stat(const char *path, struct stat *buf); /* real_func=pseudo_stat */ int lstat(const char *path, struct stat *buf); /* real_func=pseudo_lstat, flags=AT_SYMLINK_NOFOLLOW */ |