zend-mail
zend-mail copied to clipboard
ListParser::parse parses string incorrectly
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;
}
This repository has been closed and moved to laminas/laminas-mail; a new issue has been opened at https://github.com/laminas/laminas-mail/issues/21.