From c0ee33f48f85b5247f03645e39f854747533bd8d Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 6 Feb 2026 15:02:45 +0100 Subject: [PATCH] stat-util: add stat_verify_socket() helper --- src/basic/stat-util.c | 15 +++++++++++++++ src/basic/stat-util.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c index d5df4acc28..f50b64e484 100644 --- a/src/basic/stat-util.c +++ b/src/basic/stat-util.c @@ -142,6 +142,21 @@ int is_symlink(const char *path) { return verify_stat_at(AT_FDCWD, path, false, stat_verify_symlink, false); } +int stat_verify_socket(const struct stat *st) { + assert(st); + + if (S_ISLNK(st->st_mode)) + return -ELOOP; + + if (S_ISDIR(st->st_mode)) + return -EISDIR; + + if (!S_ISSOCK(st->st_mode)) + return -ENOTSOCK; + + return 0; +} + int stat_verify_linked(const struct stat *st) { assert(st); diff --git a/src/basic/stat-util.h b/src/basic/stat-util.h index 65af98e76a..e4138e960a 100644 --- a/src/basic/stat-util.h +++ b/src/basic/stat-util.h @@ -20,6 +20,8 @@ int stat_verify_symlink(const struct stat *st); int fd_verify_symlink(int fd); int is_symlink(const char *path); +int stat_verify_socket(const struct stat *st); + int stat_verify_linked(const struct stat *st); int fd_verify_linked(int fd);