From e4758df2e9a6a36c5706e174a4dd6fa2c728c01a Mon Sep 17 00:00:00 2001 From: ZehMatt Date: Thu, 22 Jul 2021 22:06:48 +0300 Subject: [PATCH 1/3] Fix #15048: Crash removing litter from cheats --- src/openrct2/actions/SetCheatAction.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/openrct2/actions/SetCheatAction.cpp b/src/openrct2/actions/SetCheatAction.cpp index 3b335234fd..ee749f9911 100644 --- a/src/openrct2/actions/SetCheatAction.cpp +++ b/src/openrct2/actions/SetCheatAction.cpp @@ -417,20 +417,20 @@ void SetCheatAction::RemoveLitter() const sprite_remove(litter); } - tile_element_iterator it; - + tile_element_iterator it{}; tile_element_iterator_begin(&it); do { if (it.element->GetType() != TILE_ELEMENT_TYPE_PATH) continue; - if (!(it.element)->AsPath()->HasAddition()) + auto* path = it.element->AsPath(); + if (path->HasAddition()) continue; - auto* pathBitEntry = it.element->AsPath()->GetAdditionEntry(); - if (pathBitEntry->flags & PATH_BIT_FLAG_IS_BIN) - it.element->AsPath()->SetAdditionStatus(0xFF); + auto* pathBitEntry = path->GetAdditionEntry(); + if (pathBitEntry != nullptr && pathBitEntry->flags & PATH_BIT_FLAG_IS_BIN) + path->SetAdditionStatus(0xFF); } while (tile_element_iterator_next(&it)); From c15f17c49a533c23df3c5b9a1e2edbd12a0d766f Mon Sep 17 00:00:00 2001 From: ZehMatt Date: Thu, 22 Jul 2021 22:09:43 +0300 Subject: [PATCH 2/3] Fix potential null dereference --- src/openrct2-ui/interface/ViewportInteraction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2-ui/interface/ViewportInteraction.cpp b/src/openrct2-ui/interface/ViewportInteraction.cpp index 8211f06472..5bd98c98fc 100644 --- a/src/openrct2-ui/interface/ViewportInteraction.cpp +++ b/src/openrct2-ui/interface/ViewportInteraction.cpp @@ -474,7 +474,7 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor { ft.Add(STR_BROKEN); } - ft.Add(pathAddEntry->name); + ft.Add(pathAddEntry != nullptr ? pathAddEntry->name : STR_NONE); SetMapTooltip(ft); return info; } From 8d273d6a3ef1f79708be3c6dd5d11cd978301d28 Mon Sep 17 00:00:00 2001 From: ZehMatt Date: Thu, 22 Jul 2021 22:12:32 +0300 Subject: [PATCH 3/3] Update changelog.txt --- distribution/changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/distribution/changelog.txt b/distribution/changelog.txt index c9945e5d09..ce60e57bab 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,6 +1,7 @@ 0.3.4+ (in development) ------------------------------------------------------------------------ - Fix: [#15028] Crash when placing large scenery. +- Fix: [#15048] Crash when removing litter with cheats. - Fix: [#15052] Crash when using banner window. - Improved: [#12626] Allow using RCT2 saves to mark RCT Classic (.sea) parks as finished and vice versa.