diff options
Diffstat (limited to 'src/libudev')
-rw-r--r-- | src/libudev/util.c | 11 | ||||
-rw-r--r-- | src/libudev/util.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libudev/util.c b/src/libudev/util.c index af7477ba6f..116d723a0f 100644 --- a/src/libudev/util.c +++ b/src/libudev/util.c @@ -658,6 +658,17 @@ int null_or_empty_path(const char *fn) { return null_or_empty(&st); } +int null_or_empty_fd(int fd) { + struct stat st; + + assert(fd >= 0); + + if (fstat(fd, &st) < 0) + return -errno; + + return null_or_empty(&st); +} + bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) { assert(de); diff --git a/src/libudev/util.h b/src/libudev/util.h index bde7b91e6f..a38e8e61c5 100644 --- a/src/libudev/util.h +++ b/src/libudev/util.h @@ -222,6 +222,7 @@ int chmod_and_chown(const char *path, mode_t mode, uid_t uid, gid_t gid); bool null_or_empty(struct stat *st) _pure_; int null_or_empty_path(const char *fn); +int null_or_empty_fd(int fd); int execute_command(const char *command, char *const argv[]); |