Display (macOS): don't crash with NULL pointer references

Fix #1393
This commit is contained in:
李通洲
2024-11-25 22:21:53 +08:00
parent 04088b5b2c
commit 0cd7aeac19
@@ -150,7 +150,7 @@ static void detectDisplays(FFDisplayServerResult* ds)
}
#endif
if (display->type == FF_DISPLAY_TYPE_BUILTIN)
if (display->type == FF_DISPLAY_TYPE_BUILTIN && displayInfo)
display->hdrStatus = CFDictionaryContainsKey(displayInfo, CFSTR("ReferencePeakHDRLuminance"))
? FF_DISPLAY_HDR_STATUS_SUPPORTED : FF_DISPLAY_HDR_STATUS_UNSUPPORTED;
#ifdef MAC_OS_X_VERSION_10_15
@@ -168,11 +168,15 @@ static void detectDisplays(FFDisplayServerResult* ds)
#endif
display->serial = CGDisplaySerialNumber(screen);
int value;
if (ffCfDictGetInt(displayInfo, CFSTR(kDisplayYearOfManufacture), &value) == NULL)
display->manufactureYear = (uint16_t) value;
if (ffCfDictGetInt(displayInfo, CFSTR(kDisplayWeekOfManufacture), &value) == NULL)
display->manufactureWeek = (uint16_t) value;
if (displayInfo)
{
int value;
if (ffCfDictGetInt(displayInfo, CFSTR(kDisplayYearOfManufacture), &value) == NULL)
display->manufactureYear = (uint16_t) value;
if (ffCfDictGetInt(displayInfo, CFSTR(kDisplayWeekOfManufacture), &value) == NULL)
display->manufactureWeek = (uint16_t) value;
}
}
CGDisplayModeRelease(mode);
}