diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2023-01-05 13:57:51 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-01-05 21:45:53 +0100 |
commit | a91078bc57950c9b0c19fd25fb2e802409695304 (patch) | |
tree | 0111ea1ed0588e7f5d6625edae19e294fc305ba5 /src/basic/virt.c | |
parent | 8109b2908def1b8038e0a6d3474eeca7cd143d4f (diff) | |
download | systemd-a91078bc57950c9b0c19fd25fb2e802409695304.tar.gz |
virt: fix container detection
Commit 1b86c7c59ecc ("virt: make virtualization enum a named type")
made the conversion from `if (!r)` to `if (v != VIRTUALIZATION_NONE)`.
However, the initial test was meaning "if r is null", IOW "if r IS
`VIRTUALIZATION_NONE`).
The test is wrong and this can lead to false detection of the container
environment (when calling `systemctl exit`).
For example, https://gitlab.freedesktop.org/whot/libevdev/-/jobs/34207974
is calling `systemctl exit 0`, and systemd terminates with the exit code
`130`.
Fixing that typo makes `systemctl exit 0` returns `0`.
Fixes: 1b86c7c59ecc26efdf278f5c1c4430346021cd38.
Diffstat (limited to 'src/basic/virt.c')
-rw-r--r-- | src/basic/virt.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/basic/virt.c b/src/basic/virt.c index 7c238613e6..c2eae4c52d 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -778,7 +778,7 @@ translate_name: /* Some images hardcode container=oci, but OCI is not a specific container manager. * Try to detect one based on well-known files. */ v = detect_container_files(); - if (v != VIRTUALIZATION_NONE) + if (v == VIRTUALIZATION_NONE) v = VIRTUALIZATION_CONTAINER_OTHER; goto finish; } |