From: Zbigniew Jędrzejewski-Szmek Date: Fri, 11 Nov 2016 15:54:54 +0000 (-0500) Subject: basic/virt: fix userns check on CONFIG_USER_NS=n kernel (#4651) X-Git-Tag: v233.3~162 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=e4dd0722cae89f144f3a4cf163e706e7dc071728 basic/virt: fix userns check on CONFIG_USER_NS=n kernel (#4651) ENOENT should be treated as "false", but because of the broken errno check it was treated as an error. So ConditionVirtualization=user-namespaces probably returned the correct answer, but only by accident. Fixes #4608. --- diff --git a/src/basic/virt.c b/src/basic/virt.c index 35beebe7f..c935c534b 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -498,7 +498,7 @@ static int userns_has_mapping(const char *name) { f = fopen(name, "re"); if (!f) { log_debug_errno(errno, "Failed to open %s: %m", name); - return errno == -ENOENT ? false : -errno; + return errno == ENOENT ? false : -errno; } n = getline(&buf, &n_allocated, f);