[Fix] Prevent VerifyGroup from setting OOZ membername to Null character. (#3168)

This commit is contained in:
Aeadoin 2023-04-01 12:40:55 -04:00 committed by GitHub
parent ca2072e7bf
commit 4c2271ff69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1158,17 +1158,26 @@ bool Group::LearnMembers() {
"Error getting group members for group [{}]", "Error getting group members for group [{}]",
GetID() GetID()
); );
return false;
} }
int memberIndex = 0; int memberIndex = 0;
for (const auto& member : rows) { for (const auto& member : rows) {
if (member.name.empty()) { if (memberIndex >= MAX_GROUP_MEMBERS) {
continue; LogError(
"Too many members in group [{}]",
GetID()
);
break;
} }
if (member.name.empty()) {
members[memberIndex] = nullptr;
membername[memberIndex][0] = '\0';
} else {
members[memberIndex] = nullptr; members[memberIndex] = nullptr;
strn0cpy(membername[memberIndex], member.name.c_str(), 64); strn0cpy(membername[memberIndex], member.name.c_str(), 64);
memberIndex++; }
++memberIndex;
} }
VerifyGroup(); VerifyGroup();
@ -1189,8 +1198,7 @@ void Group::VerifyGroup() {
} }
Mob *them = entity_list.GetMob(membername[i]); Mob *them = entity_list.GetMob(membername[i]);
if(them == nullptr && members[i] != nullptr) { //they aren't in zone if (!them && members[i]) { //they aren't in zone
membername[i][0] = '\0';
members[i] = nullptr; members[i] = nullptr;
continue; continue;
} }