On Fri, 21 May 2021 13:02:14 GMT, Jose Pereda <jper...@openjdk.org> wrote:
> 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). This pull request has now been integrated. Changeset: 7b7050c4 Author: Jose Pereda <jper...@openjdk.org> URL: https://git.openjdk.java.net/jfx/commit/7b7050c46299c0e6771ae02fbb5ceaf22104d3e4 Stats: 130 lines in 2 files changed: 118 ins; 1 del; 11 mod 8267314: Loading some animated GIFs fails with ArrayIndexOutOfBoundsException: Index 4096 out of bounds for length 4096 Reviewed-by: kcr, arapte ------------- PR: https://git.openjdk.java.net/jfx/pull/513