This PR contains various scripts, test files, and documentation related to the DemoIccMAX project. The scripts and tests focus on profile creation, cross-checking, build verification, and sanitization (Asan/UBSan) for detecting memory-related issues. The purpose of these scripts is to automate testing, ensure code correctness, and track any vulnerabilities in the DemoIccMAX project.
What is included
Profile Creation and Testing Scripts
CreateAllProfiles.sh
Automates the process of creating ICC profiles within the DemoIccMAX environment. The script is designed to validate profile creation by running tests and generating logs for analysis.
Run:
cd Testing/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/InternationalColorConsortium/DemoIccMAX/refs/heads/master/contrib/UnitTest/CreateAllProfiles.sh)"
CreateAllProfiles_cross_check.sh
A more comprehensive profile creation script that performs cross-checks on the generated profiles. It ensures consistency and correctness across profiles by comparing them to a reference set.
Run:
cd Testing/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/InternationalColorConsortium/DemoIccMAX/refs/heads/master/contrib/UnitTest/CreateAllProfiles_cross_check.sh)"
CreateAllProfiles_cross_check.md
Documentation detailing the cross-check process for the generated profiles, including expected results and error handling steps.
Build and Branch Management Scripts
build_master_branch.sh
This script is responsible for building the dmaster branch of the DemoIccMAX project. It configures the build environment using CMake and Make, then runs various tests to verify the build’s correctness. It also includes AddressSanitizer (Asan) checks.
Run:
cd /tmp
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/InternationalColorConsortium/DemoIccMAX/refs/heads/master/contrib/Build/cmake/build_master_branch.sh)"
build_master_branch.md
Documentation for the build_master_branch.sh script, including instructions on how to use the script, required dependencies, and troubleshooting tips for build failures.
TestCIccTagXmlProfileSequenceId.cpp
A unit test targeting specific vulnerabilities, particularly around handling of the ICC profile sequence ID tag in XML.
TestParseText.cpp
Another test file aimed at parsing issues and vulnerabilities, such as the one identified in CVE-2023-44062.
ICC Profiles for Testing
icPlatformSignature-ubsan-poc.icc
A test ICC profile used to check for UBSan (Undefined Behavior Sanitizer) issues with the platform signature element.
icPlatformSignature-ubsan-poc.icc
A test ICC profile used to check for UBSan (Undefined Behavior Sanitizer) issues with the platform signature element.
Run icPlatformSignature Check
To run the icPlatformSignature Check, switch your directory to contrib/UnitTest/ then paste the following commnd into your terminal:
Contrib PR Summary
This PR contains various scripts, test files, and documentation related to the DemoIccMAX project. The scripts and tests focus on profile creation, cross-checking, build verification, and sanitization (Asan/UBSan) for detecting memory-related issues. The purpose of these scripts is to automate testing, ensure code correctness, and track any vulnerabilities in the DemoIccMAX project.
What is included
Profile Creation and Testing Scripts
Automates the process of creating ICC profiles within the DemoIccMAX environment. The script is designed to validate profile creation by running tests and generating logs for analysis.
Run:
A more comprehensive profile creation script that performs cross-checks on the generated profiles. It ensures consistency and correctness across profiles by comparing them to a reference set.
Run:
Documentation detailing the cross-check process for the generated profiles, including expected results and error handling steps.
Build and Branch Management Scripts
This script is responsible for building the dmaster branch of the DemoIccMAX project. It configures the build environment using CMake and Make, then runs various tests to verify the build’s correctness. It also includes AddressSanitizer (Asan) checks.
Run:
Documentation for the
build_master_branch.sh
script, including instructions on how to use the script, required dependencies, and troubleshooting tips for build failures.CVE and Vulnerability Tests
cve-2023-46602.icc, cve-2023-46602.zsh, cve-2023-46602-icFixXml-function-IccTagXml_cpp-line_337-baseline-variant-000.xml
These files provide tests for the CVE-2023-46602 vulnerability. The scripts and ICC profile files are designed to test edge cases that may trigger memory or security issues within the project.
TestCIccTagXmlProfileSequenceId.cpp
A unit test targeting specific vulnerabilities, particularly around handling of the ICC profile sequence ID tag in XML.
TestParseText.cpp
Another test file aimed at parsing issues and vulnerabilities, such as the one identified in CVE-2023-44062.
ICC Profiles for Testing
icPlatformSignature-ubsan-poc.icc
A test ICC profile used to check for UBSan (Undefined Behavior Sanitizer) issues with the platform signature element.
icSigMatrixElemType-Read-poc.icc
Another test ICC profile, designed to identify UBSan issues when reading matrix element types.
ICC Profiles for Testing
A test ICC profile used to check for UBSan (Undefined Behavior Sanitizer) issues with the platform signature element.
Run:
Another test ICC profile, designed to identify UBSan issues when reading matrix element types.
How to Use
To run the icPlatformSignature Check, switch your directory to contrib/UnitTest/ then paste the following commnd into your terminal: