From 7b19fb1d560908a848e07e091fb5df61f4848389 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 12 Apr 2021 22:26:37 -0700 Subject: [PATCH] mime: in globs2 file only keep first time extension is seen Fixes #45534 Change-Id: I9855607e845951f26ab85cb179ec6dea40d92156 Reviewed-on: https://go-review.googlesource.com/c/go/+/309574 Trust: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Reviewed-by: Tobias Klauser TryBot-Result: Go Bot --- src/mime/testdata/test.types.globs2 | 1 + src/mime/type_unix.go | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mime/testdata/test.types.globs2 b/src/mime/testdata/test.types.globs2 index 2e893262ea1..cb5b7899b0d 100644 --- a/src/mime/testdata/test.types.globs2 +++ b/src/mime/testdata/test.types.globs2 @@ -6,3 +6,4 @@ # mime package test for globs2 50:document/test:*.t3 50:example/test:*.t4 +30:example/do-not-use:*.t4 diff --git a/src/mime/type_unix.go b/src/mime/type_unix.go index 59c99e2c86c..f954bc8a1fb 100644 --- a/src/mime/type_unix.go +++ b/src/mime/type_unix.go @@ -49,7 +49,15 @@ func loadMimeGlobsFile(filename string) error { continue } - setExtensionType(fields[2][1:], fields[1]) + extension := fields[2][1:] + if _, ok := mimeTypes.Load(extension); ok { + // We've already seen this extension. + // The file is in weight order, so we keep + // the first entry that we see. + continue + } + + setExtensionType(extension, fields[1]) } if err := scanner.Err(); err != nil { panic(err)