summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-04-13 12:17:29 +0100
committerSadie Powell <sadie@witchery.services>2024-04-14 12:23:19 +0100
commit7c93007aa6d3aed0d449124ee47cd129bbf17117 (patch)
tree79adac4a3315b14ca27d6bc1682fd440270e553d
parente8fee93a7e3a2e7d9aa190619d73abbfd12c06cc (diff)
Avoid duplicate entries in ReplaceCert.
-rw-r--r--modules/nickserv/ns_cert.cpp8
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));