mirror of
https://github.com/imgproxy/imgproxy.git
synced 2024-11-24 08:12:38 +02:00
30 lines
471 B
Go
30 lines
471 B
Go
package imagemeta
|
|
|
|
import (
|
|
"io"
|
|
"strings"
|
|
|
|
"github.com/imgproxy/imgproxy/v3/config"
|
|
|
|
"github.com/tdewolff/parse/v2"
|
|
"github.com/tdewolff/parse/v2/xml"
|
|
)
|
|
|
|
func IsSVG(r io.Reader) bool {
|
|
maxBytes := config.MaxSvgCheckBytes
|
|
|
|
l := xml.NewLexer(parse.NewInput(io.LimitReader(r, int64(maxBytes))))
|
|
|
|
for {
|
|
tt, _ := l.Next()
|
|
|
|
switch tt {
|
|
case xml.ErrorToken:
|
|
return false
|
|
|
|
case xml.StartTagToken:
|
|
return strings.ToLower(string(l.Text())) == "svg"
|
|
}
|
|
}
|
|
}
|