]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
xattr: fix assert that breaks importctl (#37146)
authorLuca Boccassi <bluca@debian.org>
Tue, 15 Apr 2025 21:44:24 +0000 (22:44 +0100)
committerGitHub <noreply@github.com>
Tue, 15 Apr 2025 21:44:24 +0000 (06:44 +0900)
getxattr_at_malloc() calls getxattr_pinned_internal() with size 0 to get
the size of the xattr, and then asserts because n > 0
```
Assertion '(size_t) n <= size' failed at src/basic/xattr-util.c:107, function getxattr_pinned_internal().
```

Follow-up for b8df25dcfe674e37ceb3d54e00a31e1d33e96057

src/basic/xattr-util.c

index deacc1025a69d7b9e5189cfe96c0d628d442f64d..9256bd4b1a4a218c9c78be2995e46034d305e513 100644 (file)
@@ -104,7 +104,7 @@ static ssize_t getxattr_pinned_internal(
         if (n < 0)
                 return -errno;
 
-        assert((size_t) n <= size);
+        assert(size == 0 || (size_t) n <= size);
         return n;
 }
 
@@ -234,7 +234,7 @@ static int listxattr_pinned_internal(
         if (n < 0)
                 return -errno;
 
-        assert((size_t) n <= size);
+        assert(size == 0 || (size_t) n <= size);
 
         if (n > INT_MAX) /* We couldn't return this as 'int' anymore */
                 return -E2BIG;