From 27e444d5e6cce9f3f4c132ad964627bdb31a3651 Mon Sep 17 00:00:00 2001 From: bakape Date: Mon, 18 Mar 2019 19:53:41 +0000 Subject: [PATCH] net/http: Detect MIME type of v5 RAR archives Change-Id: Id9dedc861523e2dafe0e67f70862973124fa07b3 GitHub-Last-Rev: b662561f1980dff9861dd8a738c75a03baa72681 GitHub-Pull-Request: golang/go#30909 Reviewed-on: https://go-review.googlesource.com/c/go/+/168039 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/net/http/sniff.go | 3 ++- src/net/http/sniff_test.go | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/net/http/sniff.go b/src/net/http/sniff.go index f03f723542..114a88ccba 100644 --- a/src/net/http/sniff.go +++ b/src/net/http/sniff.go @@ -185,7 +185,8 @@ var sniffSignatures = []sniffSig{ // Archive types &exactSig{[]byte("\x1F\x8B\x08"), "application/x-gzip"}, &exactSig{[]byte("PK\x03\x04"), "application/zip"}, - &exactSig{[]byte("Rar \x1A\x07\x00"), "application/x-rar-compressed"}, + &exactSig{[]byte("Rar \x1A\x07\x00"), "application/x-rar-compressed"}, // RAR v1.5-v4.0 + &exactSig{[]byte("Rar \x1A\x07\x01\x00"), "application/x-rar-compressed"}, // RAR v5+ &exactSig{[]byte("\x00\x61\x73\x6D"), "application/wasm"}, diff --git a/src/net/http/sniff_test.go b/src/net/http/sniff_test.go index b752f23382..08ae79c285 100644 --- a/src/net/http/sniff_test.go +++ b/src/net/http/sniff_test.go @@ -72,6 +72,10 @@ var sniffTests = []struct { {"woff sample I", []byte("\x77\x4f\x46\x46\x00\x01\x00\x00\x00\x00\x30\x54\x00\x0d\x00\x00"), "font/woff"}, {"woff2 sample", []byte("\x77\x4f\x46\x32\x00\x01\x00\x00\x00"), "font/woff2"}, {"wasm sample", []byte("\x00\x61\x73\x6d\x01\x00"), "application/wasm"}, + + // Archive types + {"RAR v1.5-v4.0", []byte("Rar \x1A\x07\x00"), "application/x-rar-compressed"}, + {"RAR v5+", []byte("Rar \x1A\x07\x01\x00"), "application/x-rar-compressed"}, } func TestDetectContentType(t *testing.T) { -- 2.48.1