From 03c158b674f7e334dbd310b671915b70af449766 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 23 Apr 2023 15:05:47 -0400 Subject: [PATCH] [Crash] Fix possible nullptr in Client::GetCharMaxLevelFromQGlobal() (#3317) # Notes - We could possibly not have a `zone` here, causing a crash. - http://spire.akkadius.com/dev/release/22.9.1?id=3051 - http://spire.akkadius.com/dev/release/22.9.1?id=3052 - http://spire.akkadius.com/dev/release/22.9.1?id=3073 - http://spire.akkadius.com/dev/release/22.9.1?id=3102 - http://spire.akkadius.com/dev/release/22.9.1?id=3103 - http://spire.akkadius.com/dev/release/22.9.1?id=3104 - http://spire.akkadius.com/dev/release/22.9.1?id=3107 - http://spire.akkadius.com/dev/release/22.9.1?id=3108 - http://spire.akkadius.com/dev/release/22.9.1?id=3109 - http://spire.akkadius.com/dev/release/22.9.1?id=3110 - http://spire.akkadius.com/dev/release/22.9.1?id=3111 - http://spire.akkadius.com/dev/release/22.9.1?id=3112 - http://spire.akkadius.com/dev/release/22.9.1?id=3113 - http://spire.akkadius.com/dev/release/22.9.1?id=3114 --- zone/exp.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zone/exp.cpp b/zone/exp.cpp index 92890ed1d..d4a094fbc 100644 --- a/zone/exp.cpp +++ b/zone/exp.cpp @@ -1256,8 +1256,10 @@ uint8 Client::GetCharMaxLevelFromQGlobal() { std::list global_map; + const uint32 zone_id = zone ? zone->GetZoneID() : 0; + if (char_cache) { - QGlobalCache::Combine(global_map, char_cache->GetBucket(), 0, CharacterID(), zone->GetZoneID()); + QGlobalCache::Combine(global_map, char_cache->GetBucket(), 0, CharacterID(), zone_id); } for (const auto& global : global_map) {