diff options
Diffstat (limited to 'vendor/golang.org/x/image/tiff/reader_test.go')
-rw-r--r-- | vendor/golang.org/x/image/tiff/reader_test.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/vendor/golang.org/x/image/tiff/reader_test.go b/vendor/golang.org/x/image/tiff/reader_test.go index f5c02e697..f1cf93bbe 100644 --- a/vendor/golang.org/x/image/tiff/reader_test.go +++ b/vendor/golang.org/x/image/tiff/reader_test.go @@ -192,6 +192,24 @@ func TestDecodeLZW(t *testing.T) { compare(t, img0, img1) } +// TestDecodeTagOrder tests that a malformed image with unsorted IFD entries is +// correctly rejected. +func TestDecodeTagOrder(t *testing.T) { + data, err := ioutil.ReadFile("../testdata/video-001.tiff") + if err != nil { + t.Fatal(err) + } + + // Swap the first two IFD entries. + ifdOffset := int64(binary.LittleEndian.Uint32(data[4:8])) + for i := ifdOffset + 2; i < ifdOffset+14; i++ { + data[i], data[i+12] = data[i+12], data[i] + } + if _, _, err := image.Decode(bytes.NewReader(data)); err == nil { + t.Fatal("got nil error, want non-nil") + } +} + // TestDecompress tests that decoding some TIFF images that use different // compression formats result in the same pixel data. func TestDecompress(t *testing.T) { |