From 0b8220be322360e4cbb2f6f1b820a41f8cad0e27 Mon Sep 17 00:00:00 2001 From: "Michael Cook (mackal)" Date: Fri, 5 Mar 2021 15:51:59 -0500 Subject: [PATCH] Clean up last name handling in NPC::PetOnSpawn Same as last time --- zone/npc.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/zone/npc.cpp b/zone/npc.cpp index ff46c1331..1a4837721 100644 --- a/zone/npc.cpp +++ b/zone/npc.cpp @@ -2254,8 +2254,12 @@ void NPC::PetOnSpawn(NewSpawn_Struct* ns) if (RuleB(Pets, UnTargetableSwarmPet)) { ns->spawn.bodytype = 11; - if(!IsCharmed() && swarmOwner->IsClient()) - sprintf(ns->spawn.lastName, "%s's Pet", swarmOwner->GetName()); + if(!IsCharmed() && swarmOwner->IsClient()) { + std::string tmp_lastname = swarmOwner->GetName(); + tmp_lastname += "'s Pet"; + if (tmp_lastname.size() < sizeof(ns->spawn.lastName)) + strn0cpy(ns->spawn.lastName, tmp_lastname.c_str(), sizeof(ns->spawn.lastName)); + } } } else if(GetOwnerID()) @@ -2267,7 +2271,10 @@ void NPC::PetOnSpawn(NewSpawn_Struct* ns) if(client) { SetPetOwnerClient(true); - sprintf(ns->spawn.lastName, "%s's Pet", client->GetName()); + std::string tmp_lastname = swarmOwner->GetName(); + tmp_lastname += "'s Pet"; + if (tmp_lastname.size() < sizeof(ns->spawn.lastName)) + strn0cpy(ns->spawn.lastName, tmp_lastname.c_str(), sizeof(ns->spawn.lastName)); } } }