pmap = continuation[baseName]
}
}
- if _, exists := pmap[key]; exists {
- // Duplicate parameter name is bogus.
+ if v, exists := pmap[key]; exists && v != value {
+ // Duplicate parameter names are incorrect, but we allow them if they are equal.
return "", nil, errors.New("mime: duplicate parameter name")
}
pmap[key] = value
`message/external-body`,
m("access-type", "URL", "url", "ftp://cs.utk.edu/pub/moore/bulk-mailer/bulk-mailer.tar"),
},
- }
+ // Issue #48866: duplicate parameters containing equal values should be allowed
+ {`text; charset=utf-8; charset=utf-8; format=fixed`, "text", m("charset", "utf-8", "format", "fixed")},
+ {`text; charset=utf-8; format=flowed; charset=utf-8`, "text", m("charset", "utf-8", "format", "flowed")},
+ }
for _, test := range tests {
mt, params, err := ParseMediaType(test.in)
if err != nil {