#477: Avoid cyclic loops in IFDs.

This commit is contained in:
Harald Kuhr
2019-08-08 22:41:23 +02:00
parent e6f437f55b
commit 8480c929c1
3 changed files with 38 additions and 16 deletions
@@ -344,4 +344,15 @@ public class TIFFReaderTest extends MetadataReaderAbstractTest {
assertEquals(3, directory.getDirectory(1).size());
}
}
@Test(timeout = 500)
public void testReadCyclicExifWithoutLoopOrOOME() throws IOException {
try (ImageInputStream stream = ImageIO.createImageInputStream(getResource("/exif/exif-loop.bin"))) {
CompoundDirectory directory = (CompoundDirectory) createReader().read(stream);
assertEquals(1, directory.directoryCount());
assertEquals(12, directory.getDirectory(0).size());
assertEquals("Polarr Photo Editor", directory.getDirectory(0).getEntryById(TIFF.TAG_SOFTWARE).getValue());
assertEquals("2019:02:27 09:22:59", directory.getDirectory(0).getEntryById(TIFF.TAG_DATE_TIME).getValueAsString());
}
}
}