From: Lennart Poettering Date: Fri, 6 Feb 2026 14:02:45 +0000 (+0100) Subject: stat-util: add stat_verify_socket() helper X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0ee33f48f85b5247f03645e39f854747533bd8d;p=thirdparty%2Fsystemd.git stat-util: add stat_verify_socket() helper --- diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c index d5df4acc287..f50b64e4846 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 65af98e76a7..e4138e960a3 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);