From 2d278e71c15c739a7c9f68e7823ccf3bb7698819 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:54:34 +1000 Subject: [PATCH] fix possible segfault in PlayerInventory::retrieve --- source/game/StarPlayerInventory.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/game/StarPlayerInventory.cpp b/source/game/StarPlayerInventory.cpp index 0d74e05..c820459 100644 --- a/source/game/StarPlayerInventory.cpp +++ b/source/game/StarPlayerInventory.cpp @@ -1008,9 +1008,10 @@ ItemPtr& PlayerInventory::retrieve(InventorySlot const& slot) { if (auto es = slot.ptr()) return guardEmpty(m_equipment[*es]); - else if (auto bs = slot.ptr()) - return guardEmpty(m_bags[bs->first]->at(bs->second)); - else if (slot.is()) + else if (auto bs = slot.ptr()) { + if (auto bag = m_bags.ptr(bs->first)) + return guardEmpty((*bag)->at(bs->second)); + } else if (slot.is()) return guardEmpty(m_swapSlot); else return guardEmpty(m_trashSlot);