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

Reply via email to