diff options
author | Sadie Powell <sadie@witchery.services> | 2024-04-13 12:17:29 +0100 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2024-04-14 12:23:19 +0100 |
commit | 7c93007aa6d3aed0d449124ee47cd129bbf17117 (patch) | |
tree | 79adac4a3315b14ca27d6bc1682fd440270e553d | |
parent | e8fee93a7e3a2e7d9aa190619d73abbfd12c06cc (diff) |
Avoid duplicate entries in ReplaceCert.
-rw-r--r-- | modules/nickserv/ns_cert.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/nickserv/ns_cert.cpp b/modules/nickserv/ns_cert.cpp index 1c9d0ae80..a6a0a3bfe 100644 --- a/modules/nickserv/ns_cert.cpp +++ b/modules/nickserv/ns_cert.cpp @@ -111,6 +111,14 @@ public: FOREACH_MOD(OnNickEraseCert, (this->nc, oldentry)); certmap.erase(oldentry); + + if (std::find(this->certs.begin(), this->certs.end(), newentry) != this->certs.end()) + { + // The cert we're upgrading to already exists. + this->certs.erase(it); + return; + } + *it = newentry; certmap[newentry] = nc; FOREACH_MOD(OnNickAddCert, (this->nc, newentry)); |