This PR limits the `tableIndex` value, used by the LZWDecoder algorithm in `GIFImageLoader2`, to avoid a potential AIOOB exception that happens on some animated GIFs, to the maximum size of the tables used (4096).
In some occasions loading an animated GIF like the one used in the included test, doesn't throw such exception, because we `allow partially loaded animated images` in `ImageStorage`, but only a few frames are loaded. In theory, greater values of such index would operate over completely full tables, so there is no need to add new values in this case, and therefore, there is no risk in limiting the value to 4096. This PR will prevent the exception and all the frames should load. The included test passes now (and fails loading only 10 frames out of 44 without the proposed fix). ------------- Commit messages: - Limit tableIndex value to avoid AIOOB exception Changes: https://git.openjdk.java.net/jfx/pull/513/files Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=513&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8267314 Stats: 23 lines in 2 files changed: 11 ins; 1 del; 11 mod Patch: https://git.openjdk.java.net/jfx/pull/513.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/513/head:pull/513 PR: https://git.openjdk.java.net/jfx/pull/513