Integrated: 8267314: Loading some animated GIFs fails with ArrayIndexOutOfBoundsException: Index 4096 out of bounds for length 4096

Jose Pereda jpereda at openjdk.java.net
Wed May 26 12:10:13 UTC 2021


On Fri, 21 May 2021 13:02:14 GMT, Jose Pereda <jpereda at 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 <jpereda at 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


More information about the openjfx-dev mailing list