Fix UB in event_object_movement.c

This commit is contained in:
DizzyEggg 2020-08-02 15:04:55 +02:00 committed by GitHub
parent 03eba6a62c
commit 7890a16d27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2340,7 +2340,13 @@ const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId)
static u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
{
return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->flagId;
struct ObjectEventTemplate *obj = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup);
#if UBFIX
// BUG: The function may return NULL, and attempting to read from NULL may freeze the game using modern compilers.
if (obj == NULL)
return 0;
#endif // UBFIX
return obj->flagId;
}
static u16 GetObjectEventFlagIdByObjectEventId(u8 objectEventId)