java-topology/defects/suitecrm/patch/suitecrm-0003-email-knownEmails-in_array.patch

22 lines
899 B
Diff

# UNDF: UNDF-2026-000000873
--- a/modules/Emails/Email.php
+++ b/modules/Emails/Email.php
@@ -2242,12 +2242,14 @@
//// HANDLE EMAILS HAND-WRITTEN
$contactRecipients = array();
$knownEmails = array();
+ $knownEmailsSet = array(); // O(1) lookup instead of O(N) in_array
foreach ($addrs_arr as $i => $v) {
if (trim($v) == "") {
continue;
} // skip any "blanks" - will always have 1
@@ -2254,8 +2256,9 @@
preg_match("/[A-Z0-9._%-\']+@[A-Z0-9.-]+\.[A-Z]{2,}/i", (string) $v, $match);
- if (!empty($match[0]) && !in_array(trim($match[0]), $knownEmails)) {
+ if (!empty($match[0]) && !isset($knownEmailsSet[trim($match[0])])) {
$knownEmails[] = $match[0];
+ $knownEmailsSet[trim($match[0])] = true;
$recipient['email'] = $match[0];