| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Thanks to ISOZAKI Nozomi to point out the issue.
|
|
|
|
|
|
| |
Oklab is an alternative to CIE Lab. It works with the same logic, but claims to be more perceptually uniform than CIELab.
Thanks to Lukas Sommer for the idea and Björn Ottosson for the documentation
|
|
|
|
|
|
| |
No behavior change.
I checked that old and new code has the same results:
https://godbolt.org/z/Eo3GT7rzP
|
|\ |
|
| |
| |
| |
| |
| | |
- Add a way to get segments from tone curves
- Add a check for windows in meson file of fast-float plugin
|
|/
|
|
| |
K preservation now works with abstract profiles in the middle and and CMYK devicelinks at the end of the transform chain
|
|
|
|
| |
Almost: meson uses always ".a" extension which is a pain. I can't solve that.
|
|
|
|
| |
MESON now compiles with VS2022, static lib and DLL
|
|
|
|
| |
Prevent profiles claiming a wrong number of channels
|
|
|
|
| |
Overflow here is harmless, but caller code may try to allocate a big chunk of memory, which will be immediatly freed because file size does not match.
|
|
|
|
| |
Guard against redimensioning data in CGATS
|
|
|
|
| |
A minor check to get fuzzers happy. ICC parsing and processing is unaffected.
|
|\
| |
| |
| | |
Roundtrip CMM, platform, and creator tags
Checked to work on several computers. Thank you so much!
|
| |
| |
| |
| |
| | |
This fixes generated MD5 checksums of existing profiles not matching
between Windows and Unix-based systems.
|
|\ \
| | |
| | |
| | | |
Fix MSYS2 compatibility
Look great, thank you!
|
| |/ |
|
|/
|
|
|
|
|
|
|
|
|
| |
Mingw headers are all lowercase, and can be used for cross compilation
from case sensitive file systems.
The official Windows SDK headers aren't self-consistent wrt upper/lower
case, so those headers can't be used on case sensitive systems without
a layer providing case insensitivity anyway.
This matches other includes of windows.h throughout the codebase.
|
|
|
|
| |
Create a default configure in Debian
|
|
|
|
|
| |
In preparation to 2.15 release candidate
Updated copyright year as well
|
|
|
|
| |
ReadRawTag allows now to read portions of tag UNLESS the tag has been modified by cmsWriteTag
|
|
|
|
| |
The ending zero was not properly counted. Fixed.
|
|
|
|
| |
Some additional checks that doesn't hurt.
|
| |
|
|
|
|
| |
That break checks. I will investigate.
|
|
|
|
|
| |
Don't allow odd numbers as offsets on utf16 tables.
Maybe some arcane profiles would use odd addresses and then define an utf16 table with a spare byte in the beginning, but I have checked my +10,000 ICC profiles zoo and none of the legal ones does that. It is likely someone is trying an exploit or a fuzzer is involved. Kill'em all
|
|
|
|
|
|
| |
Add some bound-check for bad API usage
Fixes #350
Thanks for reporting!
|
|
|
|
|
| |
sanitize cmsBuildTabulatedToneCurveFloat against bad API usage
Fix for #351
|
| |
|
|
|
|
| |
naming convention
|
| |
|
| |
|
|
|
|
| |
Bad copy & paste habits
|
|\ |
|
| |
| |
| |
| | |
Non-happy path should be honored. Check for divide by zero as well.
|
| |
| |
| |
| | |
Found by chrome fuzzer. Thanks!
|
|/
|
|
|
| |
Fixes #346
Output on pre-multiplied alpha is now zero if alpha is zero.
|
|
|
|
|
|
| |
inverted curves.
Thanks to Ralf Junker for finding the rare case.
|
|
|
|
| |
unregistering plugins twice may corrupt memory. This commit fixes that.
|
|
|
|
|
|
| |
I don't know why people keeps fuzzing this code, but they do, and then they make a lot of noise. So let's make it less permissive and abort early when some wrong characters are found.
I apologize if someone got hurt in the process.
Otherwise this is harmless because is not used on ICC profile handling.
|
|
|
|
| |
More code to filter bad API use
|
|
|
|
| |
Those profiles are just broken.
|
|
|
|
| |
Was missing in the generic cases
|
|
|
|
| |
You may create transforms with formatters 0, that means the format is to be specified latter on. So, you were not supposed to call this template with cmsDoTransform before setting the format, but fuzzer did. So I am putting code to prevent this... without including a condition that would ruin all cache and instruction branch guessing.
|
|
|
|
|
| |
It makes no sense that cmsChannelsOf() returns 3 when colorspace is bugus. Added a new function that returns -1 instead. Will document that in 2.15.
It is in the API now, but not in docs.
|
|
|
|
|
| |
Moving a function definition to proper place
(My C skills are decreasing every day)
|
|
|
|
| |
People keeps trying to break tools helper code, so let's put guards.
|
|
|
|
| |
Free resources accordly when detecting a wrong/crafted profile
|
|
|
|
|
| |
cmsReadTag already tracks its pointers so no need to free it
Also fixed a cosmetic warning (no functionality changes)
|
|
|
|
| |
Makes no sense to accept profiles with absurd version numbers. That would keep fuzzers busy for a while.
|
|
|
|
|
|
| |
Crafted profiles with bogus data may be sometimes read but then not written.
lcms is tolerant when reading, strict when writing.
Fixed a situation that may end in memory corruption.
|