Closed
Description
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;
}
Originally posted by @svaningelgem at zendframework/zend-mail#222