RFR: 8241370: Crash in JPEGImageLoader after fix for JDK-8212034

Ambarish Rapte arapte at openjdk.java.net
Tue Mar 31 05:38:58 UTC 2020


This is a regression of [JDK-8212034](https://bugs.openjdk.java.net/browse/JDK-8212034).
When image is loaded in WebView usinga url, WebView attempts to load a image frames with partial image data. This was
implemented under, JDK-8153148 -> WCImageDecoderImpl.addImageData() -> calls loadFrames() with partial image data.

Call to jpeg_read_header() may fail when the partial image data has incomplete header information.

In the given case the jpeg_read_header() call fails and code execution flow enters the 'if
(setjmp(jerr->setjmp_buffer)) {}' block and results in call to disposeIIO(env, data);, which in turn calls
imageio_dispose. This will free cinfo->err and set it to NULL, and the subsequent call to (*cinfo->err->format_message)
crashes.

Verified All test run, Sanity tests with Ensemble app and Tested different web pages.
Added a test, The test passes with fix and causes a native crash without the fix.

-------------

Commit messages:
 - 8241370: Crash in JPEGImageLoader after fix for JDK-8212034

Changes: https://git.openjdk.java.net/jfx/pull/154/files
 Webrev: https://webrevs.openjdk.java.net/jfx/154/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8241370
  Stats: 127 lines in 3 files changed: 125 ins; 1 del; 1 mod
  Patch: https://git.openjdk.java.net/jfx/pull/154.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/154/head:pull/154

PR: https://git.openjdk.java.net/jfx/pull/154


More information about the openjfx-dev mailing list