]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-blockdev-util: check if r is actually a failure before ERRNO_IS_PRIVILEGE
authorLennart Poettering <lennart@poettering.net>
Sat, 17 Sep 2022 17:45:08 +0000 (19:45 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 20 Sep 2022 11:52:01 +0000 (13:52 +0200)
src/test/test-blockdev-util.c

index d6ac6da29912ade0ca1750ab4ba3e69deac7da69..4ccb7796073e43910b19d40e46a1d08c79cbd366 100644 (file)
@@ -8,12 +8,12 @@ static void test_path_is_encrypted_one(const char *p, int expect) {
         int r;
 
         r = path_is_encrypted(p);
-        if (r == -ENOENT || ERRNO_IS_PRIVILEGE(r)) /* This might fail, if btrfs is used and we run in a
-                           * container. In that case we cannot resolve the device node paths that
-                           * BTRFS_IOC_DEV_INFO returns, because the device nodes are unlikely to exist in
-                           * the container. But if we can't stat() them we cannot determine the dev_t of
-                           * them, and thus cannot figure out if they are enrypted. Hence let's just ignore
-                           * ENOENT here. Also skip the test if we lack privileges. */
+        if (r == -ENOENT || (r < 0 && ERRNO_IS_PRIVILEGE(r)))
+                /* This might fail, if btrfs is used and we run in a container. In that case we cannot
+                 * resolve the device node paths that BTRFS_IOC_DEV_INFO returns, because the device nodes
+                 * are unlikely to exist in the container. But if we can't stat() them we cannot determine
+                 * the dev_t of them, and thus cannot figure out if they are enrypted. Hence let's just
+                 * ignore ENOENT here. Also skip the test if we lack privileges. */
                 return;
         assert_se(r >= 0);
 
@@ -23,8 +23,8 @@ static void test_path_is_encrypted_one(const char *p, int expect) {
 }
 
 TEST(path_is_encrypted) {
-        int booted = sd_booted(); /* If this is run in build environments such as koji, /dev might be a
-                                   * reguar fs. Don't assume too much if not running under systemd. */
+        int booted = sd_booted(); /* If this is run in build environments such as koji, /dev/ might be a
+                                   * regular fs. Don't assume too much if not running under systemd. */
 
         log_info("/* %s (sd_booted=%d) */", __func__, booted);