]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: port various users over to the new getxattr_at_bool() call
authorLennart Poettering <lennart@poettering.net>
Wed, 25 Oct 2023 21:02:22 +0000 (23:02 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 26 Oct 2023 07:27:18 +0000 (09:27 +0200)
src/basic/cgroup-util.c
src/basic/os-util.c
src/random-seed/random-seed.c

index 24a59dd7f5837e690b9d1479e9b8489ad263b06f..37f776adbe87f1e834c1cef3a64724c31e2ef144 100644 (file)
@@ -686,17 +686,17 @@ int cg_get_xattr_malloc(const char *path, const char *name, char **ret) {
 }
 
 int cg_get_xattr_bool(const char *path, const char *name) {
-        _cleanup_free_ char *val = NULL;
+        _cleanup_free_ char *fs = NULL;
         int r;
 
         assert(path);
         assert(name);
 
-        r = cg_get_xattr_malloc(path, name, &val);
+        r = cg_get_path(SYSTEMD_CGROUP_CONTROLLER, path, NULL, &fs);
         if (r < 0)
                 return r;
 
-        return parse_boolean(val);
+        return getxattr_at_bool(AT_FDCWD, fs, name, /* flags= */ 0);
 }
 
 int cg_remove_xattr(const char *path, const char *name) {
index 86318a8263b816509bf6bf5e57e905889791a82d..dbd067fd4467808186b2504a18a4b9397a4a4447 100644 (file)
@@ -92,8 +92,7 @@ static int extension_release_strict_xattr_value(int extension_release_fd, const
         assert(filename);
 
         /* No xattr or cannot parse it? Then skip this. */
-        _cleanup_free_ char *extension_release_xattr = NULL;
-        r = fgetxattr_malloc(extension_release_fd, "user.extension-release.strict", &extension_release_xattr);
+        r = getxattr_at_bool(extension_release_fd, /* path= */ NULL, "user.extension-release.strict", /* flags= */ 0);
         if (ERRNO_IS_NEG_XATTR_ABSENT(r))
                 return log_debug_errno(r, "%s/%s does not have user.extension-release.strict xattr, ignoring.",
                                        extension_release_dir_path, filename);
@@ -102,11 +101,6 @@ static int extension_release_strict_xattr_value(int extension_release_fd, const
                                        extension_release_dir_path, filename);
 
         /* Explicitly set to request strict matching? Skip it. */
-        r = parse_boolean(extension_release_xattr);
-        if (r < 0)
-                return log_debug_errno(r,
-                                       "%s/%s: Failed to parse 'user.extension-release.strict' extended attribute from file, ignoring: %m",
-                                       extension_release_dir_path, filename);
         if (r > 0) {
                 log_debug("%s/%s: 'user.extension-release.strict' attribute is true, ignoring file.",
                           extension_release_dir_path, filename);
index 12eb1f7eac833364d07c00ae5a03d8eef12451f1..bad18ada3b6e731a04f70f6f16c420b6e90841f1 100644 (file)
@@ -49,7 +49,6 @@ typedef enum CreditEntropy {
 static SeedAction arg_action = _ACTION_INVALID;
 
 static CreditEntropy may_credit(int seed_fd) {
-        _cleanup_free_ char *creditable = NULL;
         const char *e;
         int r;
 
@@ -76,7 +75,7 @@ static CreditEntropy may_credit(int seed_fd) {
         }
 
         /* Determine if the file is marked as creditable */
-        r = fgetxattr_malloc(seed_fd, "user.random-seed-creditable", &creditable);
+        r = getxattr_at_bool(seed_fd, /* path= */ NULL, "user.random-seed-creditable", /* flags= */ 0);
         if (r < 0) {
                 if (ERRNO_IS_XATTR_ABSENT(r))
                         log_debug_errno(r, "Seed file is not marked as creditable, not crediting.");
@@ -85,14 +84,8 @@ static CreditEntropy may_credit(int seed_fd) {
 
                 return CREDIT_ENTROPY_NO_WAY;
         }
-
-        r = parse_boolean(creditable);
-        if (r <= 0) {
-                if (r < 0)
-                        log_warning_errno(r, "Failed to parse user.random-seed-creditable extended attribute, ignoring: %s", creditable);
-                else
-                        log_debug("Seed file is marked as not creditable, not crediting.");
-
+        if (r == 0) {
+                log_debug("Seed file is marked as not creditable, not crediting.");
                 return CREDIT_ENTROPY_NO_WAY;
         }