mirror of
https://github.com/golang/go
synced 2024-11-23 15:00:03 -07:00
mime/multipart: restore 1.9 handling of missing/empty form-data file name
Revert the code changes of CL 96975 and CL 70931, but keep the tests, appropriately modified for the code changes. This restores the 1.9 handling of form-data entries with missing or empty file names. Changing the handling of this simply confused existing programs for no useful benefit. Go back to the old behavior. Updates #19183 Fixes #24041 Change-Id: I4ebc32433911e6360b9fd79d8f63a6d884822e0e Reviewed-on: https://go-review.googlesource.com/121055 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
0436b16239
commit
f040e439cb
@ -58,7 +58,7 @@ func (r *Reader) readForm(maxMemory int64) (_ *Form, err error) {
|
||||
|
||||
var b bytes.Buffer
|
||||
|
||||
if !p.hasFileName() {
|
||||
if filename == "" {
|
||||
// value, store as string in memory
|
||||
n, err := io.CopyN(&b, p, maxValueBytes+1)
|
||||
if err != nil && err != io.EOF {
|
||||
|
@ -47,12 +47,9 @@ func TestReadFormWithNamelessFile(t *testing.T) {
|
||||
}
|
||||
defer f.RemoveAll()
|
||||
|
||||
fd := testFile(t, f.File["hiddenfile"][0], "", filebContents)
|
||||
if _, ok := fd.(sectionReadCloser); !ok {
|
||||
t.Errorf("file has unexpected underlying type %T", fd)
|
||||
if g, e := f.Value["hiddenfile"][0], filebContents; g != e {
|
||||
t.Errorf("hiddenfile value = %q, want %q", g, e)
|
||||
}
|
||||
fd.Close()
|
||||
|
||||
}
|
||||
|
||||
func TestReadFormWithTextContentType(t *testing.T) {
|
||||
|
@ -81,16 +81,6 @@ func (p *Part) FileName() string {
|
||||
return p.dispositionParams["filename"]
|
||||
}
|
||||
|
||||
// hasFileName determines if a (empty or otherwise)
|
||||
// filename parameter was included in the Content-Disposition header
|
||||
func (p *Part) hasFileName() bool {
|
||||
if p.dispositionParams == nil {
|
||||
p.parseContentDisposition()
|
||||
}
|
||||
_, ok := p.dispositionParams["filename"]
|
||||
return ok
|
||||
}
|
||||
|
||||
func (p *Part) parseContentDisposition() {
|
||||
v := p.Header.Get("Content-Disposition")
|
||||
var err error
|
||||
|
Loading…
Reference in New Issue
Block a user