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

Reply via email to