HomePhabricator

GetMacosAlignedVersion() fails if sysctl is not setup

Authored by yln on Jan 6 2021, 12:41 PM.

Description

GetMacosAlignedVersion() fails if sysctl is not setup

GetMacosAlignedVersion() fails for ASan-ified launchd because the
sanitizer initialization code runs before sysctl has been setup by
launchd. In this situation, sysctl kern.osproductversion returns a
non-empty string that does not match our expectations of a
well-formatted version string.

Retrieving the kernel version (via sysctl kern.osrelease) still works,
so we can use it to add a fallback for this corner case.

Differential Revision: https://reviews.llvm.org/D94190