Clone headers in the svg package

This commit is contained in:
DarthSim
2023-07-04 18:34:11 +03:00
parent 93063787b1
commit 523f3a6546

View File

@@ -27,6 +27,19 @@ var feDropShadowTemplate = strings.TrimSpace(`
</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) {
r := bytes.NewReader(data.Data)
l := xml.NewLexer(parse.NewInput(r))
@@ -64,7 +77,7 @@ func Sanitize(data *imagedata.ImageData) (*imagedata.ImageData, error) {
newData := imagedata.ImageData{
Data: buf.Bytes(),
Type: data.Type,
Headers: data.Headers,
Headers: cloneHeaders(data.Headers),
}
newData.SetCancel(cancel)
@@ -196,7 +209,7 @@ func FixUnsupported(data *imagedata.ImageData) (*imagedata.ImageData, bool, erro
newData := imagedata.ImageData{
Data: buf.Bytes(),
Type: data.Type,
Headers: data.Headers,
Headers: cloneHeaders(data.Headers),
}
newData.SetCancel(cancel)