diff --git a/cve_bin_tool/checkers/__init__.py b/cve_bin_tool/checkers/__init__.py index 440b8d7bb5..f15a66c6e1 100644 --- a/cve_bin_tool/checkers/__init__.py +++ b/cve_bin_tool/checkers/__init__.py @@ -219,6 +219,7 @@ "perl", "picocom", "pigz", + "pixman", "png", "polarssl_fedora", "poppler", diff --git a/cve_bin_tool/checkers/pixman.py b/cve_bin_tool/checkers/pixman.py new file mode 100644 index 0000000000..f918e82a47 --- /dev/null +++ b/cve_bin_tool/checkers/pixman.py @@ -0,0 +1,23 @@ +# Copyright (C) 2023 Orange +# SPDX-License-Identifier: GPL-3.0-or-later + + +""" +CVE checker for pixman + +https://www.cvedetails.com/product/24853/Pixman-Pixman.html?vendor_id=12651 + +""" +from __future__ import annotations + +from cve_bin_tool.checkers import Checker + + +class PixmanChecker(Checker): + CONTAINS_PATTERNS: list[str] = [] + FILENAME_PATTERNS: list[str] = [] + VERSION_PATTERNS = [ + r"([0-9]+\.[0-9]+\.[0-9]+)\r?\n[\./]*pixman", + r"pixman[a-zA-Z=> \-\.\r\n]*([0-9]+\.[0-9]+\.[0-9]+)", + ] + VENDOR_PRODUCT = [("pixman", "pixman")] diff --git a/test/condensed-downloads/libpixman-1-0_0.36.0-1_amd64.deb.tar.gz b/test/condensed-downloads/libpixman-1-0_0.36.0-1_amd64.deb.tar.gz new file mode 100644 index 0000000000..6b0bc00b54 Binary files /dev/null and b/test/condensed-downloads/libpixman-1-0_0.36.0-1_amd64.deb.tar.gz differ diff --git a/test/condensed-downloads/pixman-0.42.2-1.fc39.aarch64.rpm.tar.gz b/test/condensed-downloads/pixman-0.42.2-1.fc39.aarch64.rpm.tar.gz new file mode 100644 index 0000000000..a2b7a41aa1 Binary files /dev/null and b/test/condensed-downloads/pixman-0.42.2-1.fc39.aarch64.rpm.tar.gz differ diff --git a/test/condensed-downloads/pixman_0.38.4-1_x86_64.ipk.tar.gz b/test/condensed-downloads/pixman_0.38.4-1_x86_64.ipk.tar.gz new file mode 100644 index 0000000000..af589ec6ea Binary files /dev/null and b/test/condensed-downloads/pixman_0.38.4-1_x86_64.ipk.tar.gz differ diff --git a/test/test_data/pixman.py b/test/test_data/pixman.py new file mode 100644 index 0000000000..eb8718255d --- /dev/null +++ b/test/test_data/pixman.py @@ -0,0 +1,35 @@ +# Copyright (C) 2023 Orange +# SPDX-License-Identifier: GPL-3.0-or-later + +mapping_test_data = [ + { + "product": "pixman", + "version": "0.38.4", + "version_strings": ["0.38.4\npixman-access.c"], + }, + { + "product": "pixman", + "version": "0.42.2", + "version_strings": ["pixman-access.c\n0.42.2"], + }, +] +package_test_data = [ + { + "url": "http://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/p/", + "package_name": "pixman-0.42.2-1.fc39.aarch64.rpm", + "product": "pixman", + "version": "0.42.2", + }, + { + "url": "http://ftp.fr.debian.org/debian/pool/main/p/pixman/", + "package_name": "libpixman-1-0_0.36.0-1_amd64.deb", + "product": "pixman", + "version": "0.36.0", + }, + { + "url": "https://downloads.openwrt.org/releases/packages-19.07/x86_64/packages/", + "package_name": "pixman_0.38.4-1_x86_64.ipk", + "product": "pixman", + "version": "0.38.4", + }, +]