From: Zbigniew Jędrzejewski-Szmek Date: Fri, 3 Apr 2020 17:38:50 +0000 (+0200) Subject: detect-virt: also detect "microsoft" as WSL X-Git-Tag: v246-rc1~648 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a2f838d59075a49b012f9b7056664f7ffeed44d2;p=thirdparty%2Fsystemd.git detect-virt: also detect "microsoft" as WSL From https://github.com/microsoft/WSL/issues/423#issuecomment-221627364: > it's unlikely we'll change it to something that doesn't contain "Microsoft" > or "WSL". ... but well, it happened. If they change it incompatibly w/o adding an stable detection mechanism, I think we should not add yet another detection method. But adding a different casing of "microsoft" is not a very big step, so let's do that. Follow-up for #11932. --- diff --git a/src/basic/virt.c b/src/basic/virt.c index 07831634da7..f567696265a 100644 --- a/src/basic/virt.c +++ b/src/basic/virt.c @@ -462,13 +462,14 @@ int detect_container(void) { goto finish; } - /* "Official" way of detecting WSL https://github.com/Microsoft/WSL/issues/423#issuecomment-221627364 */ + /* "Official" way of detecting WSL https://github.com/Microsoft/WSL/issues/423#issuecomment-221627364, + * ... and a working one, since the official one doesn't actually work ;( + */ r = read_one_line_file("/proc/sys/kernel/osrelease", &o); - if (r >= 0) { - if (strstr(o, "Microsoft") || strstr(o, "WSL")) { - r = VIRTUALIZATION_WSL; - goto finish; - } + if (r >= 0 && + (strstr(o, "Microsoft") || strstr(o, "microsoft") || strstr(o, "WSL"))) { + r = VIRTUALIZATION_WSL; + goto finish; } if (getpid_cached() == 1) {