diff --git a/svg/svg.go b/svg/svg.go index e59f0a1e7..ee6af2df5 100644 --- a/svg/svg.go +++ b/svg/svg.go @@ -270,8 +270,12 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st return err } case xml.EndTagToken: - t.Data[2+len(t.Text)] = '>' - if _, err := w.Write(t.Data[:2+len(t.Text)+1]); err != nil { + if len(t.Data) > 2+len(t.Text) { + t.Data[2+len(t.Text)] = '>' + if _, err := w.Write(t.Data[:2+len(t.Text)+1]); err != nil { + return err + } + } else if _, err := w.Write(t.Data); err != nil { return err } } diff --git a/svg/svg_test.go b/svg/svg_test.go index debd3f12a..7f0ab54f9 100644 --- a/svg/svg_test.go +++ b/svg/svg_test.go @@ -43,6 +43,7 @@ func TestSVG(t *testing.T) { {``, ``}, {``, ``}, // #45 + {`