package/openjpeg: security bump to version 2.5.0

Fix CVE-2021-29338: Integer Overflow in OpenJPEG v2.4.0 allows remote
attackers to crash the application, causing a Denial of Service (DoS).
This occurs when the attacker uses the command line option "-ImgDir" on
a directory that contains 1048576 files.

Fix CVE-2022-1122: A flaw was found in the opj2_decompress program in
openjpeg2 2.4.0 in the way it handles an input directory with a large
number of files. When it fails to allocate a buffer to store the
filenames of the input directory, it calls free() on an uninitialized
pointer, leading to a segmentation fault and a denial of service.

Drop patches (already in version)

https://github.com/uclouvain/openjpeg/blob/v2.5.0/NEWS.md

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Fabrice Fontaine 2022-05-18 23:20:15 +02:00 committed by Thomas Petazzoni
parent da66811e8e
commit 636f201062
6 changed files with 2 additions and 194 deletions

View File

@ -1,72 +0,0 @@
From 38f50c7d9ad3ba06b64583045665203afb53cbd9 Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Sun, 6 Nov 2016 16:29:08 +0100
Subject: [PATCH] thirdparty: tiff: append flags found by pkg-config if
available
This change allows to get all required CFLAGS/LDFLAGS in case of static only
build.
This build issue [1] was triggered by the Buildroot farms.
[1] http://autobuild.buildroot.net/results/d0d/d0d22727311d6300e0e400728126170407bfd699/build-end.log
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
thirdparty/CMakeLists.txt | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index cb24b43b58e2..cd6a5e1391b0 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -1,5 +1,9 @@
# 3rd party libs
+if(NOT BUILD_THIRDPARTY)
+ include(FindPkgConfig)
+endif(NOT BUILD_THIRDPARTY)
+
#------------
# Try to find lib Z
if(BUILD_THIRDPARTY)
@@ -36,6 +40,9 @@ if(BUILD_THIRDPARTY)
else(BUILD_THIRDPARTY)
if(ZLIB_FOUND)
find_package(PNG)
+ # Static only build:
+ # it is not necessary to invoke pkg_check_module on libpng, because libpng
+ # only depends on zlib, which is already checked.
if(PNG_FOUND)
message(STATUS "Your system seems to have a PNG lib available, we will use it")
set(OPJ_HAVE_PNG_H 1 PARENT_SCOPE)
@@ -66,12 +73,24 @@ if(BUILD_THIRDPARTY)
set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE)
else(BUILD_THIRDPARTY)
find_package(TIFF)
+ # Static only build:
+ # it is necessary to invoke pkg_check_module on libtiff since it may have
+ # several other dependencies not declared by its cmake module, but they are
+ # in the its pkgconfig module.
+ if(PKG_CONFIG_FOUND)
+ foreach(pc_tiff_module tiff tiff3 tiff4 tiff-3 tiff-4 libtiff libtiff3 libtiff4 libtiff-3 libtiff-4)
+ pkg_check_modules(PC_TIFF QUIET ${pc_tiff_module})
+ if(PC_TIFF_FOUND)
+ break()
+ endif(PC_TIFF_FOUND)
+ endforeach()
+ endif(PKG_CONFIG_FOUND)
if(TIFF_FOUND)
message(STATUS "Your system seems to have a TIFF lib available, we will use it")
set(OPJ_HAVE_TIFF_H 1 PARENT_SCOPE)
set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE)
- set(TIFF_LIBNAME ${TIFF_LIBRARIES} PARENT_SCOPE)
- set(TIFF_INCLUDE_DIRNAME ${TIFF_INCLUDE_DIR} PARENT_SCOPE)
+ set(TIFF_LIBNAME ${TIFF_LIBRARIES} ${PC_TIFF_STATIC_LIBRARIES} PARENT_SCOPE)
+ set(TIFF_INCLUDE_DIRNAME ${TIFF_INCLUDE_DIR} ${PC_TIFF_STATIC_INCLUDE_DIRS} PARENT_SCOPE)
else(TIFF_FOUND) # not found
set(OPJ_HAVE_TIFF_H 0 PARENT_SCOPE)
set(OPJ_HAVE_LIBTIFF 0 PARENT_SCOPE)
--
2.10.2

View File

@ -1,49 +0,0 @@
From 226daa77ea5a35da306f9af2548f3e2c9e79f577 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Fri, 11 Nov 2016 23:35:13 +0100
Subject: [PATCH] thirdparty: lcms2: append flags found by pkg-config if
available
This change allows to get all required CFLAGS/LDFLAGS in case of static only
build.
Fixes a buildroot build failure (see [1], [2] and [3]).
[1] http://autobuild.buildroot.net/results/5ce/5cee20afd8bef5268832cddcb3a5270746be7a57
[2] http://lists.busybox.net/pipermail/buildroot/2016-November/177187.html
[3] http://lists.busybox.net/pipermail/buildroot/2016-November/177188.html
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
thirdparty/CMakeLists.txt | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index cd6a5e1391b0..a3a8494d89b1 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -113,12 +113,19 @@ if( BUILD_THIRDPARTY)
set(OPJ_HAVE_LIBLCMS2 1 PARENT_SCOPE)
else(BUILD_THIRDPARTY)
find_package(LCMS2)
+ # Static only build:
+ # it is necessary to invoke pkg_check_module on lcms2 since it may have
+ # several other dependencies not declared by its cmake module, but they are
+ # in the its pkgconfig module.
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_LCMS2 QUIET lcms2)
+ endif(PKG_CONFIG_FOUND)
if(LCMS2_FOUND)
message(STATUS "Your system seems to have a LCMS2 lib available, we will use it")
set(OPJ_HAVE_LCMS2_H 1 PARENT_SCOPE)
set(OPJ_HAVE_LIBLCMS2 1 PARENT_SCOPE)
- set(LCMS_LIBNAME ${LCMS2_LIBRARIES} PARENT_SCOPE)
- set(LCMS_INCLUDE_DIRNAME ${LCMS2_INCLUDE_DIRS} PARENT_SCOPE)
+ set(LCMS_LIBNAME ${LCMS2_LIBRARIES} ${PC_LCMS2_STATIC_LIBRARIES} PARENT_SCOPE)
+ set(LCMS_INCLUDE_DIRNAME ${LCMS2_INCLUDE_DIRS} ${PC_LCMS2_STATIC_INCLUDE_DIRS} PARENT_SCOPE)
else(LCMS2_FOUND) # not found lcms2
# try to find LCMS
find_package(LCMS)
--
2.10.2

View File

@ -1,34 +0,0 @@
From 786ddcd1475adc6193c59d53e0d8ed2c502f2b00 Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <peter@korsgaard.com>
Date: Sat, 23 Sep 2017 18:49:31 +0200
Subject: [PATCH] CMakeLists.txt: Don't require a C++ compiler
By default, CMake assumes that the project is using both C and C++. By
explicitly passing 'C' as argument of the project() macro, we tell CMake
that only C is used, which prevents CMake from erroring out if a C++
compiler doesn't exist.
Submitted upstream:
https://github.com/uclouvain/openjpeg/pull/1027
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ec42bc99..d80eb48b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,7 +24,7 @@ endif()
#string(TOLOWER ${OPENJPEG_NAMESPACE} OPENJPEG_LIBRARY_NAME)
set(OPENJPEG_LIBRARY_NAME openjp2)
-project(${OPENJPEG_NAMESPACE})
+project(${OPENJPEG_NAMESPACE} C)
# Do full dependency headers.
include_regular_expression("^.*$")
--
2.11.0

View File

@ -1,37 +0,0 @@
From 14f4c27e7c91f745a1dda9991b5deea3cbef2072 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Thu, 7 Jan 2021 14:09:50 +0100
Subject: [PATCH] Revert "Use INC_DIR for OPENJPEG_INCLUDE_DIRS (fixes
uclouvain#1174)"
This reverts commit 65586374d639cfc0104419992f9022174b412594 which
breaks cross-compilation of poppler under buildroot (because of
DESTDIR usage).
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: https://github.com/uclouvain/openjpeg/pull/1321]
---
cmake/OpenJPEGConfig.cmake.in | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/cmake/OpenJPEGConfig.cmake.in b/cmake/OpenJPEGConfig.cmake.in
index 8a726697..2925108a 100644
--- a/cmake/OpenJPEGConfig.cmake.in
+++ b/cmake/OpenJPEGConfig.cmake.in
@@ -27,8 +27,12 @@ if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake)
# This is an install tree
include(${SELF_DIR}/OpenJPEGTargets.cmake)
+ # We find a relative path from the PKG directory to header files.
+ set(PKG_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_PACKAGE_DIR@")
set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@")
- get_filename_component(OPENJPEG_INCLUDE_DIRS "${INC_DIR}" ABSOLUTE)
+ file(RELATIVE_PATH PKG_TO_INC_RPATH "${PKG_DIR}" "${INC_DIR}")
+
+ get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" ABSOLUTE)
else()
if(EXISTS ${SELF_DIR}/OpenJPEGExports.cmake)
--
2.29.2

View File

@ -1,3 +1,3 @@
# Locally computed:
sha256 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d openjpeg-2.4.0.tar.gz
sha256 0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a openjpeg-2.5.0.tar.gz
sha256 a6af136f3e15038a666b61f376612a07d9a4e48cb7c01adbf3e33b3f14ab49b6 LICENSE

View File

@ -4,7 +4,7 @@
#
################################################################################
OPENJPEG_VERSION = 2.4.0
OPENJPEG_VERSION = 2.5.0
OPENJPEG_SITE = $(call github,uclouvain,openjpeg,v$(OPENJPEG_VERSION))
OPENJPEG_LICENSE = BSD-2-Clause
OPENJPEG_LICENSE_FILES = LICENSE