From: Lennart Poettering Date: Sat, 17 Sep 2022 17:45:08 +0000 (+0200) Subject: test-blockdev-util: check if r is actually a failure before ERRNO_IS_PRIVILEGE X-Git-Tag: v252-rc1~132^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fc5bd435034f90b3aff87840435074d934756e21;p=thirdparty%2Fsystemd.git test-blockdev-util: check if r is actually a failure before ERRNO_IS_PRIVILEGE --- diff --git a/src/test/test-blockdev-util.c b/src/test/test-blockdev-util.c index d6ac6da2991..4ccb7796073 100644 --- a/src/test/test-blockdev-util.c +++ b/src/test/test-blockdev-util.c @@ -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);