diff options
-rw-r--r-- | modules/protocol/inspircd12.cpp | 2 | ||||
-rw-r--r-- | modules/protocol/inspircd20.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index 60e062359..9a64ec34a 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -287,7 +287,7 @@ bool event_metadata(const Anope::string &source, const std::vector<Anope::string std::string data = params[2].c_str(); size_t pos1 = data.find(' ') + 1; size_t pos2 = data.find(' ', pos1); - if (u && ((pos2 - pos1) == 32)) // fingerprints should always be 32 bytes in size + if ((pos2 - pos1) >= 32) // inspircd supports md5 and sha1 fingerprint hashes -> size 32 or 40 bytes. { u->fingerprint = data.substr(pos1, pos2 - pos1); FOREACH_MOD(I_OnFingerprint, OnFingerprint(u)); diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index b86bc6bf0..a4d4e80aa 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -298,7 +298,7 @@ bool event_metadata(const Anope::string &source, const std::vector<Anope::string std::string data = params[2].c_str(); size_t pos1 = data.find(' ') + 1; size_t pos2 = data.find(' ', pos1); - if ((pos2 - pos1) == 32) // fingerprints should always be 32 bytes in size + if ((pos2 - pos1) >= 32) // inspircd supports md5 and sha1 fingerprint hashes -> size 32 or 40 bytes. { u->fingerprint = data.substr(pos1, pos2 - pos1); FOREACH_MOD(I_OnFingerprint, OnFingerprint(u)); |