File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -35,8 +35,8 @@ const sniffLen = 512
35
35
// SVGMimeType MIME type of SVG images.
36
36
const SVGMimeType = "image/svg+xml"
37
37
38
- var svgTagRegex = regexp .MustCompile (`(?s )\A\s*(?:<!--.*?-->\s*)* <svg\b ` )
39
- var svgTagInXMLRegex = regexp .MustCompile (`(?s )\A<\?xml\b.*?\?>\s*(?:<!--.*?-->\s*)* <svg\b ` )
38
+ var svgTagRegex = regexp .MustCompile (`(?si )\A\s*(?:( <!--.*?-->|<!DOCTYPE\s+svg([\s:]+.*?>|>))\s*)* <svg[\s>\/] ` )
39
+ var svgTagInXMLRegex = regexp .MustCompile (`(?si )\A<\?xml\b.*?\?>\s*(?:( <!--.*?-->|<!DOCTYPE\s+svg([\s:]+.*?>|>))\s*)* <svg[\s>\/] ` )
40
40
41
41
// EncodeMD5 encodes string to md5 hex value.
42
42
func EncodeMD5 (str string ) string {
Original file line number Diff line number Diff line change @@ -216,6 +216,9 @@ func TestIsSVGImageFile(t *testing.T) {
216
216
assert .True (t , IsSVGImageFile ([]byte (`<!-- Multiline
217
217
Comment -->
218
218
<svg></svg>` )))
219
+ assert .True (t , IsSVGImageFile ([]byte (`<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN"
220
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
221
+ <svg></svg>` )))
219
222
assert .True (t , IsSVGImageFile ([]byte (`<?xml version="1.0" encoding="UTF-8"?>
220
223
<!-- Comment -->
221
224
<svg></svg>` )))
@@ -227,6 +230,11 @@ func TestIsSVGImageFile(t *testing.T) {
227
230
<!-- Multline
228
231
Comment -->
229
232
<svg></svg>` )))
233
+ assert .True (t , IsSVGImageFile ([]byte (`<?xml version="1.0" encoding="UTF-8"?>
234
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
235
+ <!-- Multline
236
+ Comment -->
237
+ <svg></svg>` )))
230
238
assert .False (t , IsSVGImageFile ([]byte {}))
231
239
assert .False (t , IsSVGImageFile ([]byte ("svg" )))
232
240
assert .False (t , IsSVGImageFile ([]byte ("<svgfoo></svgfoo>" )))
You can’t perform that action at this time.
0 commit comments