mime: Parse/Format corrupt parameters (2)
dvyukov opened this issue · 1 comments
dvyukov commented
The following program fails with the panic:
package main
import (
"fmt"
"mime"
"reflect"
)
func main() {
sdata := "0/0;0=\"'\";9=\"'\""
mt, params, err := mime.ParseMediaType(sdata)
if err != nil {
return
}
sdata1 := mime.FormatMediaType(mt, params)
mt1, params1, err := mime.ParseMediaType(sdata1)
if err != nil {
fmt.Printf("%q(%q, %+v) -> %q\n", sdata, mt, params, sdata1)
panic(err)
}
if !reflect.DeepEqual(mt, mt1) {
fmt.Printf("%q -> %q\n", mt, mt1)
panic("mediatype changed")
}
if !reflect.DeepEqual(params, params1) {
fmt.Printf("%+v -> %+v\n", params, params1)
panic("params changed")
}
}
map[0:' 9:'] -> map[0:; 9=]
panic: params changed
Either Format/Parse must preserve parameters, or if that's incorrect input the first Parse must fail.
go version devel +514014c Thu Jun 18 15:54:35 2015 +0200 linux/amd64
gopherbot commented
CL https://golang.org/cl/17136 mentions this issue.