]> Cypherpunks repositories - gostls13.git/commitdiff
image/gif: return an error on missing palette
authorJeff R. Allen <jra@nella.org>
Wed, 17 Jun 2015 12:48:03 +0000 (14:48 +0200)
committerNigel Tao <nigeltao@golang.org>
Thu, 18 Jun 2015 22:44:26 +0000 (22:44 +0000)
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 <nigeltao@golang.org>
src/image/gif/reader.go
src/image/gif/reader_test.go

index b71e041e78919114b397892927627545653792e2..80cbccb6909ba24aeadd7da3ab9bee20a36aa7ba 100644 (file)
@@ -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) {
index 7712d46228f1dc0213913a559b9dce0f79efdbbb..fd0000886ccbce0d0905f205924c775da532c173 100644 (file)
@@ -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) {