<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in MailUtils.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>b22130d2b9e76b1247849cd618b2bcf664ee020f - fix(parser): stop group-quantifier body patterns from exhausting memory</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/MailUtils.php#b22130d2b9e76b1247849cd618b2bcf664ee020f</link>
        <description>fix(parser): stop group-quantifier body patterns from exhausting memorySeveral patterns repeat a group &#8212; (?:&#8230;)* / (?:&#8230;)+ &#8212; over a body that canspan a large region. On the non-JIT PCRE engine each iteration of agroup repetition keeps its own backtracking frame, so a big body retainsone frame per byte: a linear, unbounded memory spike that can fatal arequest (and, with JIT on, trips pcre.jit_stacklimit so the lexer dumpsthe rest of the document as literal text). A repetition over a singleitem (.* , [^x]+) is optimized by PCRE and unaffected.Make each body possessive: the repeated group cannot match the delimiterthat follows it, so it always stops at the first closer and never needsto backtrack.- media {{&#8230;}}, windowssharelink, gfm_quote, gfm_link: possessive body.- email validation (used by emaillink and mail_isvalid): possessive  local-part and domain groups; a long dotted `a.a.a&#8230;` local part or  domain was a ReDoS vector. Match results are unchanged.

            List of files:
            /dokuwiki/inc/MailUtils.php</description>
        <pubDate>Wed, 08 Jul 2026 17:43:28 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>c959e5ab963ba051e2d168d1c866a0659c90ed54 - &#55358;&#56598; Rector and PHPCS fixes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/MailUtils.php#c959e5ab963ba051e2d168d1c866a0659c90ed54</link>
        <description>&#55358;&#56598; Rector and PHPCS fixes

            List of files:
            /dokuwiki/inc/MailUtils.php</description>
        <pubDate>Sun, 07 Jun 2026 13:17:50 +0000</pubDate>
        <dc:creator>splitbrain &lt;86426+splitbrain@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>73dc0a8919857718a3b64a4c0741b57580a34b2a - fix(mail): keep &apos;&amp;&apos; intact in mailto links with multiple query params</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/MailUtils.php#73dc0a8919857718a3b64a4c0741b57580a34b2a</link>
        <description>fix(mail): keep &apos;&amp;&apos; intact in mailto links with multiple query paramsMove the email-handling helpers (obfuscate, mail_isvalid,mail_quotedprintable_encode, mail_setup) out of the proceduralinc/mail.php into a namespaced dokuwiki\MailUtils class plus a newMailer::configInit(), and add a separate MailUtils::obfuscateUrl() forthe mailto-href context.The xhtml renderer and PluginTrait now build the link label and thehref separately: the address half is run through the mailguardobfuscation, the query string is preserved verbatim with only HTMLescaping applied. This fixes #1690 &#8212; in &apos;visible&apos; mode the previouscode rawurlencoded the entire address+query, turning &apos;?&apos; into &apos;%3F&apos; andbreaking multi-parameter mailto links; in all modes the query string isno longer mangled by the [at]/[dot] substitution.Core call sites (Mailer, auth, LegacyApiCore, common, the xhtmlrenderer, the parser, the bundled config/styling/usermanager plugins)are migrated to MailUtils directly. The old top-level functions andPREG_PATTERN_VALID_EMAIL constant remain as deprecated shims withrector mappings.Tests for obfuscate / mail_isvalid / mail_quotedprintable_encode areconsolidated into a single _test/tests/MailUtilsTest.php and extendedwith regression coverage for the multi-parameter, double-escape andURL-shape cases.Closes #1690Replaces #1964

            List of files:
            /dokuwiki/inc/MailUtils.php</description>
        <pubDate>Wed, 06 May 2026 21:21:37 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
