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.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-04-03 19:38:50 +02:00
parent 4c39820562
commit a2f838d590
1 changed files with 7 additions and 6 deletions

View File

@ -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) {