From: Jeff R. Allen Date: Wed, 17 Jun 2015 12:48:03 +0000 (+0200) Subject: image/gif: return an error on missing palette X-Git-Tag: go1.5beta1~184 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=82020f865991ec352a401bd6d320044ab83e03cc;p=gostls13.git image/gif: return an error on missing palette A frame that tries to use the global palette when it has not been given should result in an error, not an image with no palette at all. Fixes #11150. Change-Id: If0c3a201a0ac977eee2b7a5dc68930c0c5787f40 Reviewed-on: https://go-review.googlesource.com/11064 Reviewed-by: Nigel Tao --- diff --git a/src/image/gif/reader.go b/src/image/gif/reader.go index b71e041e78..80cbccb690 100644 --- a/src/image/gif/reader.go +++ b/src/image/gif/reader.go @@ -173,6 +173,9 @@ func (d *decoder) decode(r io.Reader, configOnly bool) error { return err } } else { + if d.globalColorTable == nil { + return errors.New("gif: no color table") + } m.Palette = d.globalColorTable } if d.hasTransparentIndex && int(d.transparentIndex) < len(m.Palette) { diff --git a/src/image/gif/reader_test.go b/src/image/gif/reader_test.go index 7712d46228..fd0000886c 100644 --- a/src/image/gif/reader_test.go +++ b/src/image/gif/reader_test.go @@ -217,7 +217,7 @@ func TestNoPalette(t *testing.T) { b.WriteString(trailerStr) - try(t, b.Bytes(), "gif: invalid pixel value") + try(t, b.Bytes(), "gif: no color table") } func TestPixelOutsidePaletteRange(t *testing.T) {