summaryrefslogtreecommitdiff
path: root/src/libudev
diff options
context:
space:
mode:
Diffstat (limited to 'src/libudev')
-rw-r--r--src/libudev/util.c11
-rw-r--r--src/libudev/util.h1
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[]);