Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mime: Parse/Format corrupt parameters (2) #11291

Closed
dvyukov opened this issue Jun 19, 2015 · 1 comment
Closed

mime: Parse/Format corrupt parameters (2) #11291

dvyukov opened this issue Jun 19, 2015 · 1 comment
Milestone

Comments

@dvyukov
Copy link
Member

dvyukov commented Jun 19, 2015

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
Copy link
Contributor

CL https://golang.org/cl/17136 mentions this issue.

@golang golang locked and limited conversation to collaborators Dec 1, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants