From 0c6426cb2d180d4bcb4d49f6d62dcc62fffe2af4 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 28 Apr 2025 17:46:39 +0200 Subject: [PATCH] Fix: Out-of-bounds read, if NewGRF stations provided no spritesets. --- src/newgrf_station.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index 28e81f7ee8..aa17efa18c 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -522,7 +522,8 @@ uint32_t Waypoint::GetNewGRFVariable(const ResolverObject &, uint8_t variable, [ /* virtual */ const SpriteGroup *StationResolverObject::ResolveReal(const RealSpriteGroup *group) const { if (this->station_scope.st == nullptr || !Station::IsExpected(this->station_scope.st)) { - return group->loading[0]; + if (!group->loading.empty()) return group->loading[0]; + return nullptr; } uint cargo = 0; @@ -564,7 +565,8 @@ uint32_t Waypoint::GetNewGRFVariable(const ResolverObject &, uint8_t variable, [ } } - return group->loading[0]; + if (!group->loading.empty()) return group->loading[0]; + return nullptr; } GrfSpecFeature StationResolverObject::GetFeature() const