" addr, err := mail.ParseAddress(data) if err != nil { return } _, err = mail....">

net/mail: ParseAddress/String corrupt address (original) (raw)

The following program fails the panic:

package main

import ( "fmt" "net/mail" )

func main() { data := ""\\x1f,"<0@0>" addr, err := mail.ParseAddress(data) if err != nil { return } _, err = mail.ParseAddress(addr.String()) if err != nil { fmt.Printf("failed to parse addr: %q -> %q\n", data, addr) panic(err) } }

failed to parse addr: "\"\\\x1f,\"<0@0>" -> "=?utf-8?q?=1F,?= <0@0>"
panic: mail: no angle-addr

ParseAddress must handle result of Address.String, or else first ParseAddress must fail.

go version devel +514014c Thu Jun 18 15:54:35 2015 +0200 linux/amd64