RFR: 8267314: Loading some animated GIFs fails with ArrayIndexOutOfBoundsException: Index 4096 out of bounds for length 4096
Jose Pereda
jpereda at openjdk.java.net
Fri May 21 14:12:28 UTC 2021
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
More information about the openjfx-dev
mailing list