From 7ad108ccbade89b0e6309962e50023023d3c90d6 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Tue, 10 Mar 2015 10:07:05 +0100 Subject: [PATCH] TMI-110: Fixed a possible OutOfMemoryError caused by invalid tags and lengths. --- .../com/twelvemonkeys/imageio/metadata/exif/EXIFReader.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReader.java b/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReader.java index ae0e23d8..9c130368 100644 --- a/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReader.java +++ b/imageio/imageio-metadata/src/main/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReader.java @@ -83,7 +83,7 @@ public final class EXIFReader extends MetadataReader { return readDirectory(input, directoryOffset); } - public Directory readDirectory(final ImageInputStream pInput, final long pOffset) throws IOException { + protected Directory readDirectory(final ImageInputStream pInput, final long pOffset) throws IOException { List ifds = new ArrayList(); List entries = new ArrayList(); @@ -230,7 +230,7 @@ public final class EXIFReader extends MetadataReader { pInput.seek(offset); try { - byte[] bytes = new byte[8 + Math.max(20, count)]; + byte[] bytes = new byte[8 + Math.min(120, Math.max(20, count))]; int len = pInput.read(bytes); System.err.print(HexDump.dump(offset, bytes, 0, len));