Add missing check for pg != NULL
authorgkoehler <gkoehler@openbsd.org>
Mon, 6 Feb 2023 06:41:38 +0000 (06:41 +0000)
committergkoehler <gkoehler@openbsd.org>
Mon, 6 Feb 2023 06:41:38 +0000 (06:41 +0000)
commit7c6a291384345490aa2fe06dfa14678b608d6b30
treedcc3d9bf6014392aba3928608bdade4ad7300f70
parent422252e0378887088212610d259eb5d06b870c03
Add missing check for pg != NULL

The code was reading pg->pg_flags, so clang assumed pg != NULL, then
optimized a later "if (pg != NULL)" to "if (1)", and allowed a call to
pmap_enter_pv(pted, NULL).  Such a call can freeze bsd.mp by trying to
lock NULL's ((struct mutex *)0x3c).  I froze bsd.mp this way by
starting Xorg on a macppc with nv(4) or r128(4) video, as it tried to
mmap the xf86(4) aperture.

ok miod@
sys/arch/powerpc/powerpc/pmap.c