From 9f1519cd94b28afadf28f1cc86dee9b09f427ff9 Mon Sep 17 00:00:00 2001 From: hg <4683435+hgtw@users.noreply.github.com> Date: Tue, 27 Sep 2022 20:05:05 -0400 Subject: [PATCH] Validate reward item instance --- zone/task_client_state.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/zone/task_client_state.cpp b/zone/task_client_state.cpp index 49c906183..a79f52089 100644 --- a/zone/task_client_state.cpp +++ b/zone/task_client_state.cpp @@ -991,12 +991,14 @@ void ClientTaskState::RewardTask(Client *c, const TaskInformation *ti, ClientTas if (item_id > 0) { std::unique_ptr inst(database.CreateItem(item_id, charges)); - bool stacked = c->TryStacking(inst.get()); - if (!stacked) { - int16_t slot = c->GetInv().FindFreeSlot(inst->IsClassBag(), true, inst->GetItem()->Size); - c->SummonItem(item_id, charges, 0, 0, 0, 0, 0, 0, false, slot); - if (item_data) { - c->MessageString(Chat::Yellow, YOU_HAVE_BEEN_GIVEN, inst->GetItem()->Name); + if (inst && inst->GetItem()) { + bool stacked = c->TryStacking(inst.get()); + if (!stacked) { + int16_t slot = c->GetInv().FindFreeSlot(inst->IsClassBag(), true, inst->GetItem()->Size); + c->SummonItem(item_id, charges, 0, 0, 0, 0, 0, 0, false, slot); + if (item_data) { + c->MessageString(Chat::Yellow, YOU_HAVE_BEEN_GIVEN, inst->GetItem()->Name); + } } } }