This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Description
Code to reproduce the issue
include "vendor\zendframework\zend-mail\src\Header\ListParser.php"
var_dump(\Zend\Mail\Header\ListParser::parse("\"a'b\" <abc@host.be>, def <def@host.be>"));
Expected results
array(2) {
[0]=>
string(19) ""a'b" abc@host.be"
[1]=>
string(18) " def def@host.be"
}
Actual results
array(1) {
[0]=>
string(38) ""a'b" abc@host.be, def def@host.be"
}
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;
}