mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
xattr-util: add trivial getxattr_at_strv() helper
This commit is contained in:
@@ -13,11 +13,13 @@
|
||||
#include "fd-util.h"
|
||||
#include "macro.h"
|
||||
#include "missing_syscall.h"
|
||||
#include "nulstr-util.h"
|
||||
#include "parse-util.h"
|
||||
#include "sparse-endian.h"
|
||||
#include "stat-util.h"
|
||||
#include "stdio-util.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "time-util.h"
|
||||
#include "xattr-util.h"
|
||||
|
||||
@@ -189,6 +191,24 @@ int getxattr_at_bool(int fd, const char *path, const char *name, int at_flags) {
|
||||
return parse_boolean(v);
|
||||
}
|
||||
|
||||
int getxattr_at_strv(int fd, const char *path, const char *name, int at_flags, char ***ret_strv) {
|
||||
int r;
|
||||
|
||||
_cleanup_free_ char *nulstr = NULL;
|
||||
size_t nulstr_size = 0;
|
||||
|
||||
r = getxattr_at_malloc(fd, path, name, at_flags, &nulstr, &nulstr_size);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
_cleanup_strv_free_ char **l = strv_parse_nulstr(nulstr, nulstr_size);
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret_strv = TAKE_PTR(l);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int listxattr_pinned_internal(
|
||||
int fd,
|
||||
const char *path,
|
||||
|
||||
@@ -20,6 +20,7 @@ static inline int fgetxattr_malloc(int fd, const char *name, char **ret, size_t
|
||||
}
|
||||
|
||||
int getxattr_at_bool(int fd, const char *path, const char *name, int at_flags);
|
||||
int getxattr_at_strv(int fd, const char *path, const char *name, int at_flags, char ***ret_strv);
|
||||
|
||||
int listxattr_at_malloc(int fd, const char *path, int at_flags, char **ret);
|
||||
static inline int listxattr_malloc(const char *path, char **ret) {
|
||||
|
||||
Reference in New Issue
Block a user