@@ -3319,90 +3319,32 @@ def test_getaddresses(self):
33193319 [('Al Person' , 'aperson@dom.ain' ),
33203320 ('Bud Person' , 'bperson@dom.ain' )])
33213321
3322- def test_getaddresses_parsing_errors (self ):
3323- """Test for parsing errors from CVE-2023-27043"""
3324- eq = self .assertEqual
3325- eq (utils .getaddresses (['alice@example.org(<bob@example.com>' ]),
3326- [('' , '' )])
3327- eq (utils .getaddresses (['alice@example.org)<bob@example.com>' ]),
3328- [('' , '' )])
3329- eq (utils .getaddresses (['alice@example.org<<bob@example.com>' ]),
3330- [('' , '' )])
3331- eq (utils .getaddresses (['alice@example.org><bob@example.com>' ]),
3332- [('' , '' )])
3333- eq (utils .getaddresses (['alice@example.org@<bob@example.com>' ]),
3334- [('' , '' )])
3335- eq (utils .getaddresses (['alice@example.org,<bob@example.com>' ]),
3336- [('' , 'alice@example.org' ), ('' , 'bob@example.com' )])
3337- eq (utils .getaddresses (['alice@example.org;<bob@example.com>' ]),
3338- [('' , '' )])
3339- eq (utils .getaddresses (['alice@example.org:<bob@example.com>' ]),
3340- [('' , '' )])
3341- eq (utils .getaddresses (['alice@example.org.<bob@example.com>' ]),
3342- [('' , '' )])
3343- eq (utils .getaddresses (['alice@example.org"<bob@example.com>' ]),
3344- [('' , '' )])
3345- eq (utils .getaddresses (['alice@example.org[<bob@example.com>' ]),
3346- [('' , '' )])
3347- eq (utils .getaddresses (['alice@example.org]<bob@example.com>' ]),
3348- [('' , '' )])
3349-
3350- def test_parseaddr_parsing_errors (self ):
3351- """Test for parsing errors from CVE-2023-27043"""
3352- eq = self .assertEqual
3353- eq (utils .parseaddr (['alice@example.org(<bob@example.com>' ]),
3354- ('' , '' ))
3355- eq (utils .parseaddr (['alice@example.org)<bob@example.com>' ]),
3356- ('' , '' ))
3357- eq (utils .parseaddr (['alice@example.org<<bob@example.com>' ]),
3358- ('' , '' ))
3359- eq (utils .parseaddr (['alice@example.org><bob@example.com>' ]),
3360- ('' , '' ))
3361- eq (utils .parseaddr (['alice@example.org@<bob@example.com>' ]),
3362- ('' , '' ))
3363- eq (utils .parseaddr (['alice@example.org,<bob@example.com>' ]),
3364- ('' , '' ))
3365- eq (utils .parseaddr (['alice@example.org;<bob@example.com>' ]),
3366- ('' , '' ))
3367- eq (utils .parseaddr (['alice@example.org:<bob@example.com>' ]),
3368- ('' , '' ))
3369- eq (utils .parseaddr (['alice@example.org.<bob@example.com>' ]),
3370- ('' , '' ))
3371- eq (utils .parseaddr (['alice@example.org"<bob@example.com>' ]),
3372- ('' , '' ))
3373- eq (utils .parseaddr (['alice@example.org[<bob@example.com>' ]),
3374- ('' , '' ))
3375- eq (utils .parseaddr (['alice@example.org]<bob@example.com>' ]),
3376- ('' , '' ))
3322+ def test_getaddresses_comma_in_name (self ):
3323+ """GH-106669 regression test."""
3324+ self .assertEqual (
3325+ utils .getaddresses (
3326+ [
3327+ '"Bud, Person" <bperson@dom.ain>' ,
3328+ 'aperson@dom.ain (Al Person)' ,
3329+ '"Mariusz Felisiak" <to@example.com>' ,
3330+ ]
3331+ ),
3332+ [
3333+ ('Bud, Person' , 'bperson@dom.ain' ),
3334+ ('Al Person' , 'aperson@dom.ain' ),
3335+ ('Mariusz Felisiak' , 'to@example.com' ),
3336+ ],
3337+ )
33773338
33783339 def test_getaddresses_nasty (self ):
33793340 eq = self .assertEqual
33803341 eq (utils .getaddresses (['foo: ;' ]), [('' , '' )])
3381- eq (utils .getaddresses (['[]*-- =~$' ]), [('' , '' )])
3342+ eq (utils .getaddresses (
3343+ ['[]*-- =~$' ]),
3344+ [('' , '' ), ('' , '' ), ('' , '*--' )])
33823345 eq (utils .getaddresses (
33833346 ['foo: ;' , '"Jason R. Mastaler" <jason@dom.ain>' ]),
33843347 [('' , '' ), ('Jason R. Mastaler' , 'jason@dom.ain' )])
3385- eq (utils .getaddresses (
3386- [r'Pete(A nice \) chap) <pete(his account)@silly.test(his host)>' ]),
3387- [('Pete (A nice ) chap his account his host)' , 'pete@silly.test' )])
3388- eq (utils .getaddresses (
3389- ['(Empty list)(start)Undisclosed recipients :(nobody(I know))' ]),
3390- [('' , '' )])
3391- eq (utils .getaddresses (
3392- ['Mary <@machine.tld:mary@example.net>, , jdoe@test . example' ]),
3393- [('Mary' , 'mary@example.net' ), ('' , '' ), ('' , 'jdoe@test.example' )])
3394- eq (utils .getaddresses (
3395- ['John Doe <jdoe@machine(comment). example>' ]),
3396- [('John Doe (comment)' , 'jdoe@machine.example' )])
3397- eq (utils .getaddresses (
3398- ['"Mary Smith: Personal Account" <smith@home.example>' ]),
3399- [('Mary Smith: Personal Account' , 'smith@home.example' )])
3400- eq (utils .getaddresses (
3401- ['Undisclosed recipients:;' ]),
3402- [('' , '' )])
3403- eq (utils .getaddresses (
3404- [r'<boss@nil.test>, "Giant; \"Big\" Box" <bob@example.net>' ]),
3405- [('' , 'boss@nil.test' ), ('Giant; "Big" Box' , 'bob@example.net' )])
34063348
34073349 def test_getaddresses_embedded_comment (self ):
34083350 """Test proper handling of a nested comment"""
0 commit comments