Integrated: 8358057: Update validation of ICC_Profile header data

Sergey Bylokhov serb at openjdk.org
Wed Jun 4 17:56:04 UTC 2025


On Thu, 29 May 2025 10:22:39 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

> The [next PR](https://github.com/openjdk/jdk/pull/23044) introduces several new methods to the ICC_Profile class:
> -  getProfileClass(byte[])
> -  getColorSpaceType(byte[])
> -  getPCSType(byte[])
> -  checkRenderingIntent(byte[])
> 
> These new methods extract data directly from the provided byte array rather than relying on the profile instance. The first three methods essentially duplicate the existing ones (getProfileClass(), getColorSpaceType(), getPCSType()).
> 
> It is possible to update implementation:
> - The existing methods getColorSpaceType() and getPCSType() could delegate to the new getColorSpaceType(byte[]) and getPCSType(byte[]) methods.
> - The checkRenderingIntent(byte[]) method could be updated to report the actual invalid intent value when an error occurs
> 
> Tests:
>  - Old ValidateICCHeaderData test is update to verify the new output of the checkRenderingIntent
>  - New RenderingIntentStressTest test is added to check the next part of the icc_spec:
> 
>           * ICC spec: only the least-significant 16 bits encode the rendering
>           * intent. The most significant 16 bits must be zero and can be ignored.
>           * See https://www.color.org/ICC1v42_2006-05.pdf, section 7.2.15.
> 
> 
> 
> @honkar-jdk please take a look.
> 
> Note: There is currently an inconsistency in the usage of `getData(icSigHead)` vs `getData(cmmProfile(), icSigHead)` throughout the codebase. I plan to address this separately.

This pull request has now been integrated.

Changeset: 8939acc8
Author:    Sergey Bylokhov <serb at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/8939acc8ab0e45b82252f0f2de37e9bd5c3e1493
Stats:     150 lines in 4 files changed: 112 ins; 15 del; 23 mod

8358057: Update validation of ICC_Profile header data

Reviewed-by: honkar

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

PR: https://git.openjdk.org/jdk/pull/25519


More information about the client-libs-dev mailing list