From aef7b8bfbaad6f93e8c7da8bd136eef62a34b5bf Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Wed, 11 Mar 2015 14:38:31 +0100 Subject: [PATCH] TMI-116: Now tries to be lenient about bad interop IFDs. --- .../imageio/metadata/exif/EXIFReader.java | 43 ++++++---- .../imageio/metadata/exif/EXIFReaderTest.java | 75 +++++++++++++++++- .../jpeg/exif-with-interop-subdir-R98.jpg | Bin 0 -> 38010 bytes .../jpeg/exif-with-interop-subdir-bad.jpg | Bin 0 -> 31290 bytes ...jpg => exif-with-interop-subdir-empty.jpg} | Bin .../jpeg/exif-with-interop-subdir-eof.jpg | Bin 0 -> 1926 bytes 6 files changed, 99 insertions(+), 19 deletions(-) create mode 100644 imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-R98.jpg create mode 100644 imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-bad.jpg rename imageio/imageio-metadata/src/test/resources/jpeg/{exif-with-interop-subdir.jpg => exif-with-interop-subdir-empty.jpg} (100%) create mode 100644 imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-eof.jpg 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 3cdb0253..7826f21e 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 @@ -38,6 +38,7 @@ import com.twelvemonkeys.lang.Validate; import javax.imageio.IIOException; import javax.imageio.ImageIO; import javax.imageio.stream.ImageInputStream; +import java.io.EOFException; import java.io.File; import java.io.IOException; import java.nio.ByteOrder; @@ -52,6 +53,9 @@ import java.util.*; * @version $Id: EXIFReader.java,v 1.0 Nov 13, 2009 5:42:51 PM haraldk Exp$ */ public final class EXIFReader extends MetadataReader { + + final static boolean DEBUG = "true".equalsIgnoreCase(System.getProperty("com.twelvemonkeys.imageio.metadata.exif.debug")); + static final Collection KNOWN_IFDS = Collections.unmodifiableCollection(Arrays.asList(TIFF.TAG_EXIF_IFD, TIFF.TAG_GPS_IFD, TIFF.TAG_INTEROP_IFD, TIFF.TAG_SUB_IFD)); @Override @@ -83,13 +87,22 @@ public final class EXIFReader extends MetadataReader { return readDirectory(input, directoryOffset, true); } + // TODO: Consider re-writing so that the linked IFD parsing is done externally to the method protected Directory readDirectory(final ImageInputStream pInput, final long pOffset, final boolean readLinked) throws IOException { List ifds = new ArrayList(); List entries = new ArrayList(); pInput.seek(pOffset); long nextOffset = -1; - int entryCount = pInput.readUnsignedShort(); + + int entryCount; + try { + entryCount = pInput.readUnsignedShort(); + } + catch (EOFException e) { + // Treat EOF here as empty Sub-IFD + entryCount = 0; + } for (int i = 0; i < entryCount; i++) { EXIFEntry entry = readEntry(pInput); @@ -119,15 +132,9 @@ public final class EXIFReader extends MetadataReader { } } - // TODO: Make what sub-IFDs to parse optional? Or leave this to client code? At least skip the non-TIFF data? - // TODO: Put it in the constructor? + // TODO: Consider leaving to client code what sub-IFDs to parse (but always parse TAG_SUB_IFD). readSubdirectories(pInput, entries, - Arrays.asList(TIFF.TAG_EXIF_IFD, TIFF.TAG_GPS_IFD, TIFF.TAG_INTEROP_IFD, TIFF.TAG_SUB_IFD -// , TIFF.TAG_IPTC, TIFF.TAG_XMP -// , TIFF.TAG_ICC_PROFILE -// , TIFF.TAG_PHOTOSHOP -// ,TIFF.TAG_MODI_OLE_PROPERTY_SET - ) + Arrays.asList(TIFF.TAG_EXIF_IFD, TIFF.TAG_GPS_IFD, TIFF.TAG_INTEROP_IFD, TIFF.TAG_SUB_IFD) ); ifds.add(0, new IFD(entries)); @@ -224,20 +231,24 @@ public final class EXIFReader extends MetadataReader { // Invalid tag, this is just for debugging long offset = pInput.getStreamPosition() - 8l; - System.err.printf("Bad EXIF"); - System.err.println("tagId: " + tagId + (tagId <= 0 ? " (INVALID)" : "")); - System.err.println("type: " + type + " (INVALID)"); - System.err.println("count: " + count); + if (DEBUG) { + System.err.printf("Bad EXIF data @%08x\n", pInput.getStreamPosition()); + System.err.println("tagId: " + tagId + (tagId <= 0 ? " (INVALID)" : "")); + System.err.println("type: " + type + " (INVALID)"); + System.err.println("count: " + count); + } pInput.mark(); pInput.seek(offset); try { - byte[] bytes = new byte[8 + Math.min(120, Math.max(20, count))]; + byte[] bytes = new byte[8 + Math.min(120, Math.max(24, count))]; int len = pInput.read(bytes); - System.err.print(HexDump.dump(offset, bytes, 0, len)); - System.err.println(len < count ? "[...]" : ""); + if (DEBUG) { + System.err.print(HexDump.dump(offset, bytes, 0, len)); + System.err.println(len < count ? "[...]" : ""); + } } finally { pInput.reset(); diff --git a/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReaderTest.java b/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReaderTest.java index b7770e11..1249de6c 100644 --- a/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReaderTest.java +++ b/imageio/imageio-metadata/src/test/java/com/twelvemonkeys/imageio/metadata/exif/EXIFReaderTest.java @@ -192,17 +192,86 @@ public class EXIFReaderTest extends MetadataReaderAbstractTest { } @Test - public void testReadExifJPEGWithInteropSubDir() throws IOException { - ImageInputStream stream = ImageIO.createImageInputStream(getResource("/jpeg/exif-with-interop-subdir.jpg")); + public void testReadExifJPEGWithInteropSubDirR98() throws IOException { + ImageInputStream stream = ImageIO.createImageInputStream(getResource("/jpeg/exif-with-interop-subdir-R98.jpg")); stream.seek(30); - Directory directory = createReader().read(new SubImageInputStream(stream, 65535)); + CompoundDirectory directory = (CompoundDirectory) createReader().read(new SubImageInputStream(stream, 1360)); + assertEquals(17, directory.size()); + assertEquals(2, directory.directoryCount()); + + Directory exif = (Directory) directory.getEntryById(TIFF.TAG_EXIF_IFD).getValue(); + assertNotNull(exif); + assertEquals(23, exif.size()); + + // The interop IFD is empty (entry count is 0) + Directory interop = (Directory) exif.getEntryById(TIFF.TAG_INTEROP_IFD).getValue(); + assertNotNull(interop); + assertEquals(2, interop.size()); + + assertNotNull(interop.getEntryById(1)); // InteropIndex + assertEquals("ASCII", interop.getEntryById(1).getTypeName()); + assertEquals("R98", interop.getEntryById(1).getValue()); // Known values: R98, THM or R03 + + assertNotNull(interop.getEntryById(2)); // InteropVersion + assertEquals("UNDEFINED", interop.getEntryById(2).getTypeName()); + assertArrayEquals(new byte[] {'0', '1', '0', '0'}, (byte[]) interop.getEntryById(2).getValue()); + } + + @Test + public void testReadExifJPEGWithInteropSubDirEmpty() throws IOException { + ImageInputStream stream = ImageIO.createImageInputStream(getResource("/jpeg/exif-with-interop-subdir-empty.jpg")); + stream.seek(30); + + CompoundDirectory directory = (CompoundDirectory) createReader().read(new SubImageInputStream(stream, 1360)); assertEquals(11, directory.size()); + assertEquals(1, directory.directoryCount()); Directory exif = (Directory) directory.getEntryById(TIFF.TAG_EXIF_IFD).getValue(); assertNotNull(exif); assertEquals(24, exif.size()); + // The interop IFD is empty (entry count is 0) + Directory interop = (Directory) exif.getEntryById(TIFF.TAG_INTEROP_IFD).getValue(); + assertNotNull(interop); + assertEquals(0, interop.size()); + } + + @Test + public void testReadExifJPEGWithInteropSubDirEOF() throws IOException { + ImageInputStream stream = ImageIO.createImageInputStream(getResource("/jpeg/exif-with-interop-subdir-eof.jpg")); + stream.seek(30); + + CompoundDirectory directory = (CompoundDirectory) createReader().read(new SubImageInputStream(stream, 236)); + assertEquals(8, directory.size()); + assertEquals(1, directory.directoryCount()); + + Directory exif = (Directory) directory.getEntryById(TIFF.TAG_EXIF_IFD).getValue(); + assertNotNull(exif); + assertEquals(5, exif.size()); + + // The interop IFD isn't there (offset points to outside the TIFF structure)... + // Have double-checked using ExifTool, which says "Warning : Bad InteropOffset SubDirectory start" + Directory interop = (Directory) exif.getEntryById(TIFF.TAG_INTEROP_IFD).getValue(); + assertNotNull(interop); + assertEquals(0, interop.size()); + } + + @Test + public void testReadExifJPEGWithInteropSubDirBad() throws IOException { + ImageInputStream stream = ImageIO.createImageInputStream(getResource("/jpeg/exif-with-interop-subdir-bad.jpg")); + stream.seek(30); + + CompoundDirectory directory = (CompoundDirectory) createReader().read(new SubImageInputStream(stream, 12185)); + assertEquals(16, directory.size()); + assertEquals(2, directory.directoryCount()); + + Directory exif = (Directory) directory.getEntryById(TIFF.TAG_EXIF_IFD).getValue(); + assertNotNull(exif); + assertEquals(26, exif.size()); + + // JPEG starts at offset 1666 and length 10519, interop IFD points to offset 1900... + // Have double-checked using ExifTool, which says "Warning : Bad InteropIFD directory" Directory interop = (Directory) exif.getEntryById(TIFF.TAG_INTEROP_IFD).getValue(); assertNotNull(interop); assertEquals(0, interop.size()); diff --git a/imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-R98.jpg b/imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-R98.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf0e4c43a113b86a725d7aac017fd7683e8f32e2 GIT binary patch literal 38010 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®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 z zf&2%BlL~eU*$ST&*%jf6j}&K=&M3Jk6)G(%3n`Olo z8LOqKy;nb_?xfq>{(@E4BzrcCH<3hDApsS^us5_y@t>>jzr;o3%r=PC>#X#8LvO$X>jiIgK z6T?j-WurKwG2_$5zQ(UiC`_zO@=dl(RZSC2KbQ%c1)Fu4GnzY_*H{o(m{>fr*sxTy zOtPG|60?f58nouN4zO;sVYG3xskf!DwX-e1hqUUAWM$#mIr)pgBt#kiTe zmADhSUvz)wLG9t{(Trq41|WMpc|9XNKX^%dC3!8Qv{8?|A>P*BH9oZ9V5-yiwC^?F zkACug>3-Y(CjR9CQ~@3VotJnn-MBOps2=z*2sa28^y>1-%VC#41}g<;g+M~=Ltcfl zhh7bxzM^sEaTsx!YgkvfPITR%mm3bZay7Tq7 zH_qNjy>So?k8ZyybTj$p{w>(8_88%qyD^wphuF7q;&JzH{YpBd2t12 z#l1?J%IGRc)upQCYNzTCHRd%v&(1x2RV!0lStn4J_x$AZ^m@AbxCY{es|}dOz{ZUi zo-gKKI==k;%J$V*lUY-Lvwrj2*V?aJ->AQ7YEf!wY?W($-X`7ltX;CbxJNK8Sy)|ET)0^ONDHvCpv2-=@5$_NT9YA^Va% z!#b1yRpjgQS@qfOIm@}}Z=T=w<|7xV7Va&cUaVMBTE*Pa;Ih2ba!UYf1hCgF8U0*_CWh!9ODkIq4aCl5bRjsXx9*Y zTwGi{Tzot{d?I}CBq7AdCnO;yCMF>!CZ!}jJigzK0{?i0fPEYpDH%N_CH?=OT|<(A zRwxAAX5-hcAq?QIA>gnUAozXL5C9hsih~aUzV8}>g9H7Y`qy<$a3E0Zt|9mYQ1F7| z4eqi-g$v+;+lDCVCqk|WB4T=mt9R7Yb1O{xj88MJeqO`w9D?w@mUOgx$iLV;L{ihtDd76u z$2G0PU$@UlX_-4;x{;dytZig=he!IHg-c*`+LPM$(Yf8DT}GgIc;L<_xP(xs`{9ls z*o{t<@bp26@x8+0MY2klXGYYt&udrjoHr26y2`|HZV-B>WhS(YWNav{q&Y;xd*>x+e2%Wa31?c*|l>?V@(?jAb zm&qLn=Vu=#1}En}9km{v&?KrzO&k5hgHAOMAp%zo4Ka+|QCCtM`}&AG?&_mQ@2}(D zSdLI5QLOXlAnqef)Ncx6U4N_{z>$o+piIfHqM)c7KEx-IN5cYT*Vxuy8PlM*y<1=! z7^WOt*1(I(xvCyd7ka+C`-)RY5b1SfQh^Hb71%@h*1QYh>2NN~Wf-m7nJzxB)ubmc zLlH`%Q1>fyjgFVu(?s-QGTN=#Y0e#Es)pxhN9-vKiLf8n&pb1|eefhRwQ9e5u(3aH zKk59Ncb$6~)s7Ss6qn;o(D2P_aC;1#W;^B+pIUt?KIb}re$_j9pd+9x8*XeJ1jjC7 z*iEak^jdlqdO$m^^VnB+i(_U#Ew~e(=l!k5=Wz#i;7$tHZ=Loz74w*Ny9znLqLFQy zgaOoS?I%~544!=cV7rmB@llxp4>xm-QukwYE+3a8@K06Jin>302BIQ1fmz^OgiMuc^i2=@B_{=U` z9+Kuj{WPU=>#pby`^JvfzS+$5#e+8x ztE!i^mt$KNo3-onxF{t~Tywoy?oP=>qW`L1alrX0P-B z#U)tDy?^mu=!=>*e+jijvxlN%RK3aF?ifHea$K%)&81ht4EgRV$%)!*`;fU4Cur6wL6{iVWT! z|A*i;w)t-lB(KpKYgQj^;r24fL_0+oy z=N)+K1y{>X_YY@3_srE6jh8Z9!PDznn+jna{d_0oQhQ&}XVSG-3C7tmkDF2qRkrl{ z_)n1dGH`GT)2v@@jgmEyzB_br^5mWOV|5UcrG;KQP)NPSK0tBab;nXM_H zn#T~DR>qfG(JRJ@a9Qf6v0&XE6Mzg(-QOys*B{AUoN#gx`B+}UwPmmd>aH0-8=@fP`ms{Il#^9SiQ@;*?hzIL+{f8dke70JVO+rtxi) ziKu<}0Xv;l?@JE7U3)cugLw`;2#L(A^Kj;VQG`t+*n+mfUl4KRuImM7r5uP<&q?Yf zyuYTBcWx$HDZkbFIo&ngeGTxpK#TFB_nD7uxVKEn6IAq+gzsAsv2Z%aAGci7Di{$? zcjn#C4G}Tio_fc1T8lH9q#$*XQde{*S9#9 zlFu1BZz+ zxl+Nlif~znUe-NT^MWSEKWqPaLJNX_>WQ`%shyRW7Rhq*MHh8bsv5t*8}u)ddL{5l z#Xl=MP3U^0dinH-rWT&NNVrHMrBFv|e)m}sJ_abiyLQa_4N*T&%iffw3{}%6?Yy*6 z?9N4U7A>0z+J_gRr}s2qjY^5vo!WS|@)?EspXL|Iz?;s;q)%mi8OWO+%wL3oE3K}4 zIhMCw|Mr{Gp#hi(YkuCUs#AzTz0IoPs~rjLE|M$y2(q~*wcLh}k(HeT+uS~pQ;Fc? z#y|wtv|G{BEX3%D<(q+b`$Dbx#=R{|?<#~Twv`f$sWv@=zoZ{rfW+$+PmwsAq3=+a zUk;PZNQl_|B$)iXIv=Okd|aKG(;?;@QJ&ppYwH2DUu|9-V}cduEOAFn||>NKm@D+u-P1SGwLW6-lRpMI<&1hM!;nRGHBl75cvMc3E3U z3hoKjE>^K5jlKD_ZLcI9FWICi7SDmD=L26Hd*{>Aj7-UxpF2E<$Ez`ZQe##I_uaaK z0p1LAo}^znX0~!Kk%~fPRX1_J^x<vvs$=0Cv4t~@&Wj4$TJO0b(~q$?uPZX zFu6bv&cuHkJ)YoU#Gjlo@^MdRq?tRn&f(mLP6Fk zsWStLtaccn-KxDQpWPXGoW}6Mt!qtv3Y#MOtG4M5ja8unwyke%&b&=UO;zMwJ#X{g zz(tp0%QCdI>#mGp7rYs_If^&XO`RrZOpBTQ+DGb){L*uVOYPY@`&RWDWYnQ)iN&2n zYRFNbzaR2JVyqZ`T!&JZ?Vh=E{8(YxlQUdT#qa_WT$(p904ItYHKoyaLPpD|^WI}x zk?pDc2UE<X-zESR!J;juRwZ(c7%cGGNruxV-iHb6<-0H&dnMjjxf7XhX`?BB`O;1)*(Dx0@W!Jj4B)l)h zuJ(GpbRX|v@_l?dgs^pIHU8~I7kht&FZFR{J2`^mVFp)YFNIdEnDB+J77QJ{{uY9& zjy|!cMXi=H7~YkagO5n%AC#D>SCOC``+{&=HRrsa^)x+nksh zJCL}jBke$myXudlM0LuAx1FGzYno`PuDB`C@Ww(^$QRRzHm-q>WDJGwNY2yt-YY@z zpRZh{se8l6Pq>CIq&&;#8t5UF&yFDNtT?gwpxE6jQ}I%akz(preQ8$Ym@c7df^-jY zG{AUIk^5CDUr@>kTj3Mnh-u>5&DH4nOdXofSz->O8P@Rw{@ zyy#uYkN!=yGG?njX^~-G*=>Hwv#8cLzL4vmKIz=KO%~8s44c}pO)qV_1*6Sw&^5al zE#CO#CGBl|LZVap%KZk;=QCLoR0#ro>FW4|AKw=^9UZM1csm-9p>Vr$=Fw<>@1r?D z8l6h9+|-;FiWv~88=>9PYTRFA=i$HZ?vQW)elYKVBL^obh>@hN<%-faJc&5ZC7?@i zKU0eK8uMkV#$@DR&!zF_aMcKxM4=a#c;szPm#WvjcDsSZAxnZ8*64{d4VO3W*v_NQ z#j7@&KD*z~8a|B{w%wYib$YkIUMU;;b%;QX)X}`pq2I>cZ&Y5F>+#@243OOAjH9qy zAQX=QMiA!0D{t-{bPi?+WJ?v?jNHyaGmx`xukl-+u+-+NtcbCXWT1F-{WK3P&DOoA ztDXdDS~CSQG1mKaxubxG;1r5}-K7>`XvP_+qD4V+#r%8za`2v;_p z>l2E&k|S{nkmcR9EE(OCQdj0c?uyU*EZ?z*?T;98_V5*3=RT`h-5paS)L^_h-Zoc# z3L?u6R}KB#U_$TmPkLbvjI6ScF*`RM<5?X+#2jf zRpK|(28aGv_^vlu$mWEf+G=HlacZ9>Kt?3ueQsH(<_n#!KM9JpH<(AIxNA$^Ph$DLz9cDkVP?(=8T zpFo~wU0}F!;YD2*%^M}eP>S%Z=jgbSuxr0?tBnn5bl`oV$Hdd7pEw&`IS5Z|IG*-` zUQW&y?hU^dEzd1gG?HUNnL`c2T$h&ybiBFP)AQQh!VcO@R?Qgo8Q7Bm z9y92|g&jCa+z38udK#%*{ebUGbA)n6$#nz?OSTsc2e4@ zgpQ2yo4aUE-7=19yAv*?Wp zaIcI#iK0?jf$!j)5W#xqO?`t#%ezzyn-_GOTK2cWVJ-%^;W}ZVzsl=`~98(nB^)Xj=nV9b2BG9bg zxY~7hoWICj*qN4o-C3Q;&T(vr=9!;U_6d#FMdi&dk4J#9Oc6ee_mfP$pk?H$<#t|Q zo<21EZP^14+5F|fN9ohld5Gu|ANgwEl5w+B8vOO$Rp-2flRjwTWR_`-ZK4cMrM5%_ zS{6+N+bWlDJQV4e?V&`zHUgq$&2O~E`*b@hj!NkEb=|-7T>j-V4|0$V6HkYiF0!AxgfivjgwnI9 zVF056r8(z_8+Th^iD|>e0V*fi_mlHJ@g{y+b552Xhpy_##-HG*wu(4|X7}v3Q&9^S zlHM<8Jy~WQo4}!n(=`#n5u>MeS~5Xb{{t$IUsD~jt#;afJac>aV+G&om}hk3nJvVH zw{Zyd71dVTe5|ojNo^;->zTd336PUAP;%3xp_2_{WGFvlVVseAa!as3chf9?_$7q0dHTjbF}d`i}(Jh6C%N%sS72l;ILqRw78 z&Zj`M!k}T_#*GIzvY#I;ssWmHThrARroyuFGYHak{}G{nU$ngDj-r&-Ia&iJ3?RJ_ zsaNHw2Yk8KTY(g^nN5pI8>e>@mF%$8R13DuR(`^-WU`*r(YD`6j4o^>=M`u)%Z8x%tQ9c z@vK%)mQ9lz+L@hio<|S(1`EG8a-15>Jxw&+<0T}o-Tc*;wew4))U|_zR~qZDM9B$d zYlaXnUkY+o`hdHkh?1@;&3%3S0eE)iG=Akn@y(WS+a61@s%JYH43(s5Drl4vEk|H> zOylUJT@^V4Xe0skvs(#bWCm+W_cu2ZnALUE52P$cvmnthf|mv%j2eklMbY8+(XPf~ zwk7A3=AFmBw&^WiSSb4c0znkM>*lPcqVcQXRVn(hq1?Nw#Xp!Q<>=f82sh-B4!t)c z9vJs2CAN>vflF@cN7_}5fgd$E@DAnTFaOaUtT16{qr8Ou0A)Q}QqMEoDN9&^`ArN#KYA=JV+1kYlO=v0nUOlLlTkacM2*0{kQ40)SVr0}V3bUv+ZU z_Wu9~tc~!-y-y>s$x|Cat)Hb3P)V57yPfLCt`2I>zb58u39kJkMM)!PBgKoWb@^eE zgx~W=$v$1Q3#;1QS!ssro6BKyG*;^=S{IVv)Mfa-CG{g;=JN!%ZuQ@}gIlbpLG!7e2DY7MwdZdp z?u5t(7N>l>ANOIdPer-W(of18StA9mC9$+9qNl8?Tkx)3Ive|#%Vq-6M+^+Gt25Bl zR)w3Qtw~?np!-=xlEj;2{#=e&tnBUQHJ;rB7X(!NWKp;8_N!dBA(<)eoj0p;K-en$ zMEg)}^6!#j-NQ>X&m>g!V)$+9Dk>;g{S~Gvi%~^8QO5MHD$BntAyad$pdYaVss8|3 z+xXy;VxE3%eqIkZ`E~DY%x&gv0tsi*9RUJF1C+M1m)V5DN2Y!sN>7XIw49>YB}_Z= zD^0z<*OyqaxqB-OBE?$fB|F{TYGBJ86AB(y@Y{&y_)qt;M9J|ZVP%uK=%1Rp;=|<0 zEl_Z|)n{8bjGu`SKYKk-$yF==02X5wqVbvemw;t4RfUMRgW^yg|$^w>;1a>#ulhW=5Hd}`9jl5n^a{nSjLk5T#1Y%e=!PFkzK}4 zW+$0h##gff)CZHLxwcIr{{G_Y)cVH>tz$@xagF^+0|LJjDN)1XZ{^4V8`z_Sj)>hg zR^CUEwo$~$d+~0M^ktzInn4;xaVu;DYb)*HCl+3qp}jm20Iyb~pJL;d1fvvG4+GQb z!mQi!kBQYag<)P+QMEe#nP`9FSR|OTzswIeN#(!G{bN>$E9ya;Pt&8260JP#!72be zy)|PYU*(S=&aAKx$h~qsFU%V6l5Qw2+S0>Nu#%j4eO}5NTZA9MxU&82yo3fv^tWXo?7_z@ zuOQoJBT8f90U^a1dOy>D6C(0)Y=#dqt9zyH*OYL}mwTAY!6UfwG^c%$@^ z+QK)Jp{;q(#RrGN*^lA|;}WMXmHCxCU+FD6#ukchW{-+elx0d3Rut<@J|IDfLP6x8 zGe-z{HHl$mYO1}&?A0cu)f0|BAV`S`ca$y7zNe`9dhn$1nWAk%U`q)W0m)Dj2F~mm zsy|~c#%?Sswr4k5E{?VIZK7I}PAUMUK3OVSN?^B%b=%KQ1coT0irxvA{n@dWY7WDb zMxW(y#B*X(+bF$J={LhHV1*=Bt51mt{iXKFge%xv$gy0-U$?>-#Yv*lylb~kSd;~A zE>@mv$rOL1yRX$r?vaiJ{sR=FTW+066sGvAIQ*a=^RVh;!p#T#map*0$&_3C-GW=# zG@U(uIKI1cdopZB%ppdh@E)}?1h(T3Fq2Sy6Z6|d)kP8|zlzf3w&Unrs@ln3Cv^!o zFSCX$<{6itW%|dTHTgP$aU50aK^448a>2>PDGdRkJ@+TrVL}$^M5ZVX?w`L4<3L3R zy$%Ix>?D^<2~SWpvXzgQ5X3W9r*qM`?TV!YBVGMnr4MkxtlohA+$&0PA0gxMHbk-p zsP{bmCG(Y(mo}Oe)!b@OD1;J~It_*I!hFD;ib!4c-{HPSPfkmoN{xPPTmM8U0o zY)33tQO~G6wnWPjnnCD&Z zY=GsnG08hb4PS{?osDbw1BEVRs3W<>SyUHRmsZiOq>9Ecpu@;3jwn-!1cDCu0j_IG zQb{~)%wm~^1t>WILD+(FR)_!9ER$HCU{+PEZ(5Zv6Dam%Bk;^_5#HolS8->dCngVZ zIgnA}mTQ-&_pFp}ryG|-iXBre8aq{6eMaM1pG1oK?X=xI$8M6xB(Wm9nRxK@q6SEz zSsT{T!!P!dEp5XHSdFWunbkmV{* zr@QTWr{?r$$$GY)x)Z}CwAQjua~@fl+k7;ANEQaAMCl1KIA zA85zRqWE$fR{~M7%WECowW5%$>gtgW%B#zN53`D+4QMO4#aYMY3K6bqZ~p);u_xan zpZM1!CQ(Fr(r~(~A*%4SqRO=eOWe%WsQIoyx8mgSZ#>2?yud++(zsZe8bHj#Num{3 z9Mfa6yK&=)WnJvQSH6!@)%6Wd5*jP}hn^-KILXqL_S-E1#5~ZWs1)ito}F-^V_W)) z9fc%DEQEh49X^qPQq++yb$f*?RkyZC!KnoEVohm7y*C3Cs9u=t!XgD(<)@~BLV%;e zM{EUY-bwPNl194Mu$!1(?k2X8$>amXUDT1>GgC1q9rtq1PAVZeK1%X*rIc1W16~p+ zol1DxX+EbE7Lcn6 z*i9=05rb11;vbSSx5Uct@#Hw_Ro=3Vi%VdR=1I~;jaE0I9LO71qJzF=fY6&<6)b@E zB82m!}$10B>HilU*nhSFGM_?~Bwa*@8(0o>zBP1z_I zZL?HjhoJsaL>2XGv-U)mw&44oY=7cQk&`&2-2_}loCGGr#)<02ESnMi`Ucc!ppyKvF*CyInXo%^We%P_M8#N=b-pIhixDREit((oOX=3~SU z^#@0CDWOAxvgS2~DoQuFlSo-L#IB1tn;S zAc~GE{{RyYmJ%4oMDEGVSAPP*ba7OPb9Vkk%_xZffbHMDQ6+{6diflsL4I_>kv zs#AE|oJ#%KLHswxUYq$;6ljwH)@?=QbK8tCM5;gFi)3WVBW5T0gK`g=HH%YLF~@Fz zd|XNN(yOudu0hC$((~K9l~}#xvxSgPt$+|jI|W_4>@wF0PUcld z3CfHIBlMbLsxNct5&#WVsQPeHq#jslC6efgD<7)l#41ZM_<0kz5WIicVih&j)V-?2 zq{kaD6R|&OYg$yEn3ROy$hYDPtLtQ7LnL!ktx6J%N58}~8!+Tsu@*sd7MprF+%?-& zkM6GJfK&nd5%FHt`#DQ$xrzNHjwzedUDYIKVh4e4T#f{Sg1OQxW{J{UehkBDV15h@ zdee;?{gy0vLMKdt?3r2_ZX1de^pB>oka`lJd`EA!joLt@%j>f;Qb=m!?8rFNe$)oP zO>t#th@}?@;5#IXLP;BMw$;G4{{a8c6(+G{fRyDa>=YV(`HjNmA@4QiwvU|84V*x7 zGF-^9fIgBih@h01`PM6^52Etdt}NwQOfeR=v^+=!P28#>KNWbrh06f z@tvL^4{FqrxBM0~Ra;E6CycT@XwoP$Bx-7;kBD<5^vI=?Sfa-e2($;V{40_H3eiXe zd_nkQc1@|j7AN&$m$3d=+i>!AoX71=HPnFo<|+RG8e|VPW0TB3FeelFvs}7DIVJN# zNZ@L)kiGluk#ZySh83(w{)MPY5PUwVs?(~9?Zvte*}|4fYGhG-($ODZ;ev`CdhNtr`S3XRku}n1m zOV8IgcM!)8iG2;Uh9;Urbz>nQupbJWr1*m5I74q2lC8g(JlP@%W%7f)xo1H&j-_ic zCN|>Kj!^^k8)SG?Psy|ANTPDLnkSenK@&jje0wI z)_}!#6!y$NF}KvOW1Kz3 zlX@Ggyh5gw>H#!6`{WE0Z~xJXu=BDtZkobdb}CfceQg3R+`*3CvOoDe=TGvou}!|F z^!o^6w-bJon&QZpPp) z$?#DVza842MRH2rkU$@SugCcD73+!~?fH7JFO&2DjmFsx}|z@nKZ< z)XDW&DhDq}a;-kqH_IF}mg}0|UA~>g%hX&(b_pOKXdZ^W_~I3g>QP^nV|8#8@oK6j z^zTARz-?D(kV2*i;kYkw9F>_v@-;P3p_FdD8{xnelgf`AFYC*1Gf?`RRTf^oj7ODe z{!Sf~B|2kQQ;+mo1-tbCi<3EiT!#`UziPfGB0x(r^3l0Eh4-iwA(@TEDYWC26mRxT zU#3H=X-DZ?zePn)_w~p8oj9s3P1hdz4Tq?TY>OPVBz^r}6#R5~`p4k&!RIvS8 zPsXji=sz)4aI&Z(pyvO?dgdV@W}vc Jttj%h|Jg!8G8X^< literal 0 HcmV?d00001 diff --git a/imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-bad.jpg b/imageio/imageio-metadata/src/test/resources/jpeg/exif-with-interop-subdir-bad.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dee9811815fc84d0402bf75f8b0cdf5706bd431b GIT binary patch literal 31290 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

-GQu literal 0 HcmV?d00001