168e5848ad
Buildroot always enable largefile support in the toolchain, and thus the associated definitions are always on. This leads to a problem in unzip that on a 32-bit arch with these flags being passed in -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 but the LARGE_FILE_SUPPORT define not being set will cause a size mismatch on the comparison of the zipfiles: $ unzip test.zip Archive: test.zip error: invalid zip file with overlapped components (possible zip bomb) The simple solution is just enable LARGE_FILE_SUPPORT to enable large file support. In order to avoid redefinition warnings, we undefine _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE. Signed-off-by: Charles Hardin <ckhardin@gmail.com> Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
46 lines
1.4 KiB
Makefile
46 lines
1.4 KiB
Makefile
################################################################################
|
|
#
|
|
# unzip
|
|
#
|
|
################################################################################
|
|
|
|
UNZIP_VERSION = 6.0
|
|
UNZIP_SOURCE = unzip_$(UNZIP_VERSION).orig.tar.gz
|
|
UNZIP_PATCH = unzip_$(UNZIP_VERSION)-27.debian.tar.xz
|
|
UNZIP_SITE = https://snapshot.debian.org/archive/debian/20220916T090657Z/pool/main/u/unzip
|
|
UNZIP_LICENSE = Info-ZIP
|
|
UNZIP_LICENSE_FILES = LICENSE
|
|
UNZIP_CPE_ID_VENDOR = unzip_project
|
|
|
|
# unzip_$(UNZIP_VERSION)-27.debian.tar.xz has patches to fix:
|
|
UNZIP_IGNORE_CVES = \
|
|
CVE-2014-8139 \
|
|
CVE-2014-8140 \
|
|
CVE-2014-8141 \
|
|
CVE-2014-9636 \
|
|
CVE-2014-9913 \
|
|
CVE-2015-7696 \
|
|
CVE-2015-7697 \
|
|
CVE-2016-9844 \
|
|
CVE-2018-18384 \
|
|
CVE-2018-1000035 \
|
|
CVE-2019-13232 \
|
|
CVE-2022-0529 \
|
|
CVE-2022-0530
|
|
|
|
# unzip already defines _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE when
|
|
# necessary, redefining it on the command line causes some warnings.
|
|
UNZIP_TARGET_CFLAGS = \
|
|
$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE,$(TARGET_CFLAGS))
|
|
|
|
# unzip already defines _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE when
|
|
# necessary, redefining it on the command line causes some warnings.
|
|
UNZIP_TARGET_CXXFLAGS = \
|
|
$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE,$(TARGET_CXXFLAGS))
|
|
|
|
UNZIP_CONF_OPTS += \
|
|
-DCMAKE_C_FLAGS="$(UNZIP_TARGET_CFLAGS) -DLARGE_FILE_SUPPORT" \
|
|
-DCMAKE_CXX_FLAGS="$(UNZIP_TARGET_CXXFLAGS) -DLARGE_FILE_SUPPORT"
|
|
|
|
$(eval $(cmake-package))
|