diff --git a/modules/typesniffer/typesniffer.go b/modules/typesniffer/typesniffer.go index c9fef953ce703..d3e33af2c8742 100644 --- a/modules/typesniffer/typesniffer.go +++ b/modules/typesniffer/typesniffer.go @@ -7,7 +7,6 @@ import ( "fmt" "io" "net/http" - "regexp" "strings" "code.gitea.io/gitea/modules/util" @@ -23,11 +22,6 @@ const ( ApplicationOctetStream = "application/octet-stream" ) -var ( - svgTagRegex = regexp.MustCompile(`(?si)\A\s*(?:(||>))\s*)*\/]`) - svgTagInXMLRegex = regexp.MustCompile(`(?si)\A<\?xml\b.*?\?>\s*(?:(||>))\s*)*\/]`) -) - // SniffedType contains information about a blobs type. type SniffedType struct { contentType string @@ -91,12 +85,6 @@ func DetectContentType(data []byte) SniffedType { data = data[:sniffLen] } - if (strings.Contains(ct, "text/plain") || strings.Contains(ct, "text/html")) && svgTagRegex.Match(data) || - strings.Contains(ct, "text/xml") && svgTagInXMLRegex.Match(data) { - // SVG is unsupported. https://github.com/golang/go/issues/15888 - ct = SvgMimeType - } - return SniffedType{ct} } diff --git a/modules/typesniffer/typesniffer_test.go b/modules/typesniffer/typesniffer_test.go index dbce94fc3bdd9..01ffe6f1223ff 100644 --- a/modules/typesniffer/typesniffer_test.go +++ b/modules/typesniffer/typesniffer_test.go @@ -13,8 +13,6 @@ import ( ) func TestDetectContentTypeLongerThanSniffLen(t *testing.T) { - // Pre-condition: Shorter than sniffLen detects SVG. - assert.Equal(t, "image/svg+xml", DetectContentType([]byte(``)).contentType) // Longer than sniffLen detects something else. assert.NotEqual(t, "image/svg+xml", DetectContentType([]byte(``)).contentType) } @@ -24,52 +22,6 @@ func TestIsTextFile(t *testing.T) { assert.True(t, DetectContentType([]byte("lorem ipsum")).IsText()) } -func TestIsSvgImage(t *testing.T) { - assert.True(t, DetectContentType([]byte("")).IsSvgImage()) - assert.True(t, DetectContentType([]byte(" ")).IsSvgImage()) - assert.True(t, DetectContentType([]byte(``)).IsSvgImage()) - assert.True(t, DetectContentType([]byte("")).IsSvgImage()) - assert.True(t, DetectContentType([]byte(``)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - - - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - - `)).IsSvgImage()) - assert.True(t, DetectContentType([]byte(` - - - `)).IsSvgImage()) - assert.False(t, DetectContentType([]byte{}).IsSvgImage()) - assert.False(t, DetectContentType([]byte("svg")).IsSvgImage()) - assert.False(t, DetectContentType([]byte("")).IsSvgImage()) - assert.False(t, DetectContentType([]byte("text")).IsSvgImage()) - assert.False(t, DetectContentType([]byte("")).IsSvgImage()) - assert.False(t, DetectContentType([]byte(``)).IsSvgImage()) - assert.False(t, DetectContentType([]byte(` - `)).IsSvgImage()) - assert.False(t, DetectContentType([]byte(` - - `)).IsSvgImage()) -} - func TestIsPDF(t *testing.T) { pdf, _ := base64.StdEncoding.DecodeString("JVBERi0xLjYKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nF3NPwsCMQwF8D2f4s2CNYk1baF0EHRwOwg4iJt/NsFb/PpevUE4Mjwe") assert.True(t, DetectContentType(pdf).IsPDF())