mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-10-10 12:12:40 +02:00
Clone headers in the svg package
This commit is contained in:
17
svg/svg.go
17
svg/svg.go
@@ -27,6 +27,19 @@ var feDropShadowTemplate = strings.TrimSpace(`
|
|||||||
</feMerge>
|
</feMerge>
|
||||||
`)
|
`)
|
||||||
|
|
||||||
|
func cloneHeaders(src map[string]string) map[string]string {
|
||||||
|
if src == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
dst := make(map[string]string, len(src))
|
||||||
|
for k, v := range src {
|
||||||
|
dst[k] = v
|
||||||
|
}
|
||||||
|
|
||||||
|
return dst
|
||||||
|
}
|
||||||
|
|
||||||
func Sanitize(data *imagedata.ImageData) (*imagedata.ImageData, error) {
|
func Sanitize(data *imagedata.ImageData) (*imagedata.ImageData, error) {
|
||||||
r := bytes.NewReader(data.Data)
|
r := bytes.NewReader(data.Data)
|
||||||
l := xml.NewLexer(parse.NewInput(r))
|
l := xml.NewLexer(parse.NewInput(r))
|
||||||
@@ -64,7 +77,7 @@ func Sanitize(data *imagedata.ImageData) (*imagedata.ImageData, error) {
|
|||||||
newData := imagedata.ImageData{
|
newData := imagedata.ImageData{
|
||||||
Data: buf.Bytes(),
|
Data: buf.Bytes(),
|
||||||
Type: data.Type,
|
Type: data.Type,
|
||||||
Headers: data.Headers,
|
Headers: cloneHeaders(data.Headers),
|
||||||
}
|
}
|
||||||
newData.SetCancel(cancel)
|
newData.SetCancel(cancel)
|
||||||
|
|
||||||
@@ -196,7 +209,7 @@ func FixUnsupported(data *imagedata.ImageData) (*imagedata.ImageData, bool, erro
|
|||||||
newData := imagedata.ImageData{
|
newData := imagedata.ImageData{
|
||||||
Data: buf.Bytes(),
|
Data: buf.Bytes(),
|
||||||
Type: data.Type,
|
Type: data.Type,
|
||||||
Headers: data.Headers,
|
Headers: cloneHeaders(data.Headers),
|
||||||
}
|
}
|
||||||
newData.SetCancel(cancel)
|
newData.SetCancel(cancel)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user