Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

ListParser::parse parses string incorrectly #222

Open
svaningelgem opened this issue Dec 8, 2018 · 1 comment
Open

ListParser::parse parses string incorrectly #222

svaningelgem opened this issue Dec 8, 2018 · 1 comment

Comments

@svaningelgem
Copy link

Code to reproduce the issue

include "vendor\zendframework\zend-mail\src\Header\ListParser.php"
var_dump(\Zend\Mail\Header\ListParser::parse("\"a'b\" <[email protected]>, def <[email protected]>"));

Expected results

array(2) {
[0]=>
string(19) ""a'b" [email protected]"
[1]=>
string(18) " def [email protected]"
}

Actual results

array(1) {
[0]=>
string(38) ""a'b" [email protected], def [email protected]"
}

Solution

Add the following else-if branch under the current one.
Rationale: if you're in a quoted-string, don't look for more quotes as they're part of the comment.

            if ($char === $currentQuoteDelim) {
                $inQuote = false;
                $currentQuoteDelim = null;
                continue;
            }
            // We are in a quote, but encountered another quote-char: don't do anything.
            else if ( $inQuote ) {
              continue;
            }
@weierophinney
Copy link
Member

This repository has been closed and moved to laminas/laminas-mail; a new issue has been opened at laminas/laminas-mail#21.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants