zend-mail icon indicating copy to clipboard operation
zend-mail copied to clipboard

ListParser::parse parses string incorrectly

Open svaningelgem opened this issue 6 years ago • 1 comments

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;
            }

svaningelgem avatar Dec 08 '18 07:12 svaningelgem

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.

weierophinney avatar Dec 31 '19 21:12 weierophinney