mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
test-blockdev-util: avoid abort when /home is a symlink
On rpm-ostree distributions like Fedora SilverBlue /home (and various other well known locations) are symlinks to somewhere beneath /var. The path_is_encrypted() method uses O_NOFOLLOW and as a result will return ELOOP on /home. This causes test-blockdev-util to abort. Add ELOOP to the ignorable set of errnos for testing. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
76f2191d8e
commit
6aa77f9284
@ -8,12 +8,14 @@ static void test_path_is_encrypted_one(const char *p, int expect) {
|
||||
int r;
|
||||
|
||||
r = path_is_encrypted(p);
|
||||
if (r == -ENOENT || ERRNO_IS_NEG_PRIVILEGE(r))
|
||||
if (IN_SET(r, -ENOENT, -ELOOP) || ERRNO_IS_NEG_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 encrypted. Hence let's just
|
||||
* ignore ENOENT here. Also skip the test if we lack privileges. */
|
||||
* ignore ENOENT here. Also skip the test if we lack privileges.
|
||||
* ELOOP might happen if the mount point is a symlink, as seen with under
|
||||
* some rpm-ostree distros */
|
||||
return;
|
||||
assert_se(r >= 0);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user