From f5904c90cbea282bbe48dfe03581c70d35a4baa4 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 9 Mar 2019 11:36:53 +0000 Subject: [PATCH] Fix #8834: Invalid read in UpdateRideApproachExitWaypoints --- src/openrct2/peep/Guest.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 540c360155..a349ea4e53 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -4389,11 +4389,14 @@ void Guest::UpdateRideApproachExitWaypoints() int16_t shift_multiplier = 20; - rct_ride_entry* ride_type = get_ride_entry(ride->subtype); - rct_ride_entry_vehicle* vehicle_entry = &ride_type->vehicles[ride_type->default_vehicle]; - if (vehicle_entry->flags & (VEHICLE_ENTRY_FLAG_CHAIRLIFT | VEHICLE_ENTRY_FLAG_GO_KART)) + auto rideEntry = get_ride_entry(ride->subtype); + if (rideEntry != nullptr) { - shift_multiplier = 32; + auto vehicleEntry = &rideEntry->vehicles[rideEntry->default_vehicle]; + if (vehicleEntry->flags & (VEHICLE_ENTRY_FLAG_CHAIRLIFT | VEHICLE_ENTRY_FLAG_GO_KART)) + { + shift_multiplier = 32; + } } x_shift *= shift_multiplier;