diff --git a/svg/svg.go b/svg/svg.go
index e59f0a1e79..ee6af2df55 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 debd3f12af..7f0ab54f9c 100644
--- a/svg/svg_test.go
+++ b/svg/svg_test.go
@@ -43,6 +43,7 @@ func TestSVG(t *testing.T) {
{``, ``},
{``, ``}, // #45
+ {`0`, `0`}, // go fuzz
}
m := minify.New()