From 2bafbe11b1389c3a589314b74ab24f936816befb Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 26 Oct 2016 16:48:53 -0400 Subject: [PATCH] net/mail: allow empty quoted string name in address again CL 12905 disallowed "Bob" <""@example.com> but inadvertently also disallowed "" . Move the empty string check to apply only in the addr-spec. Fixes #14866. Change-Id: Ia0b7a1a32810aa78157ae77bd0130b78154c460d Reviewed-on: https://go-review.googlesource.com/32176 Reviewed-by: Brad Fitzpatrick --- src/net/mail/message.go | 6 +++--- src/net/mail/message_test.go | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/net/mail/message.go b/src/net/mail/message.go index b1d526bba94..aa3a3e78c4e 100644 --- a/src/net/mail/message.go +++ b/src/net/mail/message.go @@ -346,6 +346,9 @@ func (p *addrParser) consumeAddrSpec() (spec string, err error) { // quoted-string debug.Printf("consumeAddrSpec: parsing quoted-string") localPart, err = p.consumeQuotedString() + if localPart == "" { + err = errors.New("mail: empty quoted string in addr-spec") + } } else { // dot-atom debug.Printf("consumeAddrSpec: parsing dot-atom") @@ -463,9 +466,6 @@ Loop: i += size } p.s = p.s[i+1:] - if len(qsb) == 0 { - return "", errors.New("mail: empty quoted-string") - } return string(qsb), nil } diff --git a/src/net/mail/message_test.go b/src/net/mail/message_test.go index b29e375f2e5..f0761ab09fb 100644 --- a/src/net/mail/message_test.go +++ b/src/net/mail/message_test.go @@ -315,6 +315,16 @@ func TestAddressParsing(t *testing.T) { }, }, }, + // Issue 14866 + { + `"" `, + []*Address{ + { + Name: "", + Address: "emptystring@example.com", + }, + }, + }, } for _, test := range tests { if len(test.exp) == 1 {