]> Cypherpunks repositories - gostls13.git/commitdiff
image/jpeg: return a FormatError when hitting an unexpected io.EOF
authorNigel Tao <nigeltao@golang.org>
Fri, 28 Feb 2014 04:18:35 +0000 (15:18 +1100)
committerNigel Tao <nigeltao@golang.org>
Fri, 28 Feb 2014 04:18:35 +0000 (15:18 +1100)
inside Huffman-encoded data.

Fixes #6450.

LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/69830043

src/pkg/image/jpeg/huffman.go

index 9b731fdc4fa590eddbacf00cc078037870f82d23..f53d873a53876d880f151e53d899918ae637af89 100644 (file)
@@ -37,6 +37,9 @@ func (d *decoder) ensureNBits(n int) error {
        for d.b.n < n {
                c, err := d.r.ReadByte()
                if err != nil {
+                       if err == io.EOF {
+                               return FormatError("short Huffman data")
+                       }
                        return err
                }
                d.b.a = d.b.a<<8 | uint32(c)
@@ -50,6 +53,9 @@ func (d *decoder) ensureNBits(n int) error {
                if c == 0xff {
                        c, err = d.r.ReadByte()
                        if err != nil {
+                               if err == io.EOF {
+                                       return FormatError("short Huffman data")
+                               }
                                return err
                        }
                        if c != 0x00 {