From 9fbe26cfa8fadb58e048aa6a57ad0dacf5de03fc Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 31 Mar 2025 14:55:36 +0200 Subject: [PATCH] xattr-util: add trivial xsetxattr_strv() wrapper --- src/basic/xattr-util.c | 12 ++++++++++++ src/basic/xattr-util.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/basic/xattr-util.c b/src/basic/xattr-util.c index f5b270c3a92..f958e480ffb 100644 --- a/src/basic/xattr-util.c +++ b/src/basic/xattr-util.c @@ -343,6 +343,18 @@ int xsetxattr_full( return 0; } +int xsetxattr_strv(int fd, const char *path, int at_flags, const char *name, char * const* l) { + int r; + + _cleanup_free_ char *nulstr = NULL; + size_t size = 0; + r = strv_make_nulstr(l, &nulstr, &size); + if (r < 0) + return r; + + return xsetxattr_full(fd, path, at_flags, name, nulstr, size, /* xattr_flags= */ 0); +} + int xremovexattr(int fd, const char *path, int at_flags, const char *name) { int r; diff --git a/src/basic/xattr-util.h b/src/basic/xattr-util.h index 9132dc2e37c..02293e50073 100644 --- a/src/basic/xattr-util.h +++ b/src/basic/xattr-util.h @@ -50,6 +50,8 @@ static inline int xsetxattr( return xsetxattr_full(fd, path, at_flags, name, value, SIZE_MAX, 0); } +int xsetxattr_strv(int fd, const char *path, int at_flags, const char *name, char *const*l); + int xremovexattr(int fd, const char *path, int at_flags, const char *name); int fd_setcrtime(int fd, usec_t usec); -- 2.47.3