From: Yu Watanabe Date: Thu, 16 Feb 2023 22:18:42 +0000 (+0900) Subject: fd-util: introduce a simple helper to check a file descriptor has O_PATH X-Git-Tag: v254-rc1~1254^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ea61e2e9bd435eba9faf114757a531b375869830;p=thirdparty%2Fsystemd.git fd-util: introduce a simple helper to check a file descriptor has O_PATH --- diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index 4d6d01cd992..430db0c8790 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -808,6 +808,18 @@ int fd_reopen_condition( return new_fd; } +int fd_is_opath(int fd) { + int r; + + assert(fd >= 0); + + r = fcntl(fd, F_GETFL); + if (r < 0) + return -errno; + + return FLAGS_SET(r, O_PATH); +} + int read_nr_open(void) { _cleanup_free_ char *nr_open = NULL; int r; diff --git a/src/basic/fd-util.h b/src/basic/fd-util.h index 952afdd64f0..f5357860f55 100644 --- a/src/basic/fd-util.h +++ b/src/basic/fd-util.h @@ -104,6 +104,7 @@ static inline int make_null_stdio(void) { int fd_reopen(int fd, int flags); int fd_reopen_condition(int fd, int flags, int mask, int *ret_new_fd); +int fd_is_opath(int fd); int read_nr_open(void); int fd_get_diskseq(int fd, uint64_t *ret);