summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/image/tiff/reader_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/image/tiff/reader_test.go')
-rw-r--r--vendor/golang.org/x/image/tiff/reader_test.go18
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) {