diff --git a/src/basic/xattr-util.c b/src/basic/xattr-util.c index f5b270c3a9..f958e480ff 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 9132dc2e37..02293e5007 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);