diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2020-08-02 15:04:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-02 15:04:55 +0200 |
commit | 7890a16d275a84910733962bf6a5c10be67a4893 (patch) | |
tree | 1ed0d297c17676670aa4f8b819189c6c8a39fc0d /src | |
parent | 03eba6a62ca88a70e1880fdcd76430f30aece75f (diff) |
Fix UB in event_object_movement.c
Diffstat (limited to 'src')
-rw-r--r-- | src/event_object_movement.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 6c49b9115..ab2f4749f 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -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) |