]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
xattr-util: add trivial xsetxattr_strv() wrapper
authorLennart Poettering <lennart@poettering.net>
Mon, 31 Mar 2025 12:55:36 +0000 (14:55 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 31 Mar 2025 13:13:55 +0000 (15:13 +0200)
src/basic/xattr-util.c
src/basic/xattr-util.h

index f5b270c3a929e26d03c7e49076cf72ed9882951d..f958e480ffb0a0fba68c5ef0fef149081d4d74e6 100644 (file)
@@ -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;
 
index 9132dc2e37ce93109c4b9ddeed1fc6abbf18965c..02293e50073105009b0727325756fce8001ad778 100644 (file)
@@ -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);