1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2024-11-24 08:12:38 +02:00
imgproxy/imagemeta/svg.go
2022-11-28 22:38:17 +06:00

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"
}
}
}