On Tue, 14 Jan 2025 17:57:39 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>>>The cooked approach doesn't work for ICC_Profile header data. In case header 
>>>data is updated using the cooked approach we run into IAE- cannot write tag 
>>>data for both invalid as well as valid header field values.
>> 
>> maybe If the cooked approach always throws an exception and the current 
>> approach via "cmsSet" just ignores all errors means we are doing something 
>> wrong? Can we ask lcms maintainers why the validation is not done for this 
>> methods?
>> 
>> for example for the next method is it assumed that the client code should 
>> check the content of Table 10, and reject all incorrect values?:
>> 
>> **void cmsSetColorSpace(cmsHPROFILE hProfile, cmsColorSpaceSignature sig);**
>> 
>> Sets the color space signature in profile header, using ICC convention.
>> Parameters:
>> hProfile: Handle to a profile object
>> sig: any cmsColorSpaceSignature from Table 10
>> Returns:
>> *None*
>> 
>> https://www.littlecms.com/LittleCMS2.16%20API.pdf
>
> probably the answer will be that not all profiles are used for 
> transformation, and just to read some of its properties it is not necessary 
> to reject unexpected data such as intent/etc.

@mrserb 
The location mentioned in LCMSTransform involves creating a new color space 
transform using 2 or more profiles and DOES NOT  involve creating or updating a 
profile. Moreover LCMSTrandorm throws CMMException for invalid rendering 
intents so this case won't be an issue.

> maybe If the cooked approach always throws an exception and the current 
> approach via "cmsSet" just ignores all errors means we are doing something 
> wrong? Can we ask lcms maintainers why the validation is not done for this 
> methods?

We are choosing to add these validation checks to jdk irrespective for whether 
lcms validates or not.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23044#discussion_r1920884736

Reply via email to