From 908eff9e7abde848e433cd87a763d77c1922fc03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= Date: Fri, 16 Apr 2021 10:50:25 +0200 Subject: [PATCH 1/5] Reenable Release+Sanitizers build --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 974dec10..0fc522b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -76,14 +76,14 @@ matrix: - BUILD_TYPE="Release" - WITH_VALGRIND=1 - #- name: "Ubuntu 20.04 - gcc-9.3 (Release+Sanitizers)" - # os: linux - # dist: focal - # sudo: required - # compiler: gcc - # env: - # - BUILD_TYPE="Release" - # - WITH_SANITIZERS=1 + - name: "Ubuntu 20.04 - gcc-9.3 (Release+Sanitizers)" + os: linux + dist: focal + sudo: required + compiler: gcc + env: + - BUILD_TYPE="Release" + - WITH_SANITIZERS=1 - name: "macOS 10.14 - XCode 11.3 (Release)" os: osx From d73dd0874dda6eaffe6326f10c0a4c540243753b Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Fri, 16 Apr 2021 12:10:42 +0100 Subject: [PATCH 2/5] Fix icc_test which is failing on Linux: luis@ryzenLinux:/media/linuxDev/programming/exiv2/buildReleaseSanitizers$ cp large.icc Reagan2.icc luis@ryzenLinux:/media/linuxDev/programming/exiv2/buildReleaseSanitizers$ bin/exiv2 -iC /tmp/Reagan2.jp2 /media/linuxDev/programming/exiv2/src/jp2image.cpp:661:28: runtime error: reference binding to misaligned address 0x61f000002a9e for type 'const struct Jp2BoxHeader', which requires 4 byte alignment 0x61f000002a9e: note: pointer points here 07 07 01 00 00 00 0c 53 63 6f 6c 72 02 00 00 00 00 0c 48 4c 69 6e 6f 02 10 00 00 6d 6e 74 72 52 --- src/jp2image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jp2image.cpp b/src/jp2image.cpp index fafc6b1d..b6e5e161 100644 --- a/src/jp2image.cpp +++ b/src/jp2image.cpp @@ -658,7 +658,7 @@ static void boxes_check(size_t b,size_t m) Jp2BoxHeader* pSubBox = (Jp2BoxHeader*) (p+count) ; // copy data. pointer could be into a memory mapped file which we will decode! - Jp2BoxHeader subBox = *pSubBox ; + Jp2BoxHeader subBox ; memcpy(&subBox,pSubBox,sizeof(subBox)); Jp2BoxHeader newBox = subBox; if ( count < length ) { From 3682bce15e1ec55078f6ad005ebd84c5e6bee379 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Fri, 16 Apr 2021 12:50:27 +0100 Subject: [PATCH 3/5] Fix Ubuntu 20.04/Release/Sanitizer test breaker --- src/tiffvisitor_int.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tiffvisitor_int.cpp b/src/tiffvisitor_int.cpp index 67072235..7156fdf0 100644 --- a/src/tiffvisitor_int.cpp +++ b/src/tiffvisitor_int.cpp @@ -979,10 +979,12 @@ namespace Exiv2 { std::cerr << "Writing data area for " << key << "\n"; #endif DataBuf buf = object->pValue()->dataArea(); - memcpy(object->pDataArea_, buf.pData_, buf.size_); - if (object->sizeDataArea_ > static_cast(buf.size_)) { - memset(object->pDataArea_ + buf.size_, + if ( buf.pData_ ) { + memcpy(object->pDataArea_, buf.pData_, buf.size_); + if (object->sizeDataArea_ > static_cast(buf.size_)) { + memset(object->pDataArea_ + buf.size_, 0x0, object->sizeDataArea_ - buf.size_); + } } } } From 5d385695341f94a063a05fbfcf1a47eb7dbadff6 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Sat, 17 Apr 2021 12:08:14 +0100 Subject: [PATCH 4/5] Don't build with C++98 on Cygwin jobs --- appveyor_mingw_cygwin.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/appveyor_mingw_cygwin.yml b/appveyor_mingw_cygwin.yml index 31f054d4..5fce258b 100644 --- a/appveyor_mingw_cygwin.yml +++ b/appveyor_mingw_cygwin.yml @@ -11,14 +11,14 @@ environment: ARCHITECTURE: x86_64 UNIT_TESTS: 1 WEBREADY: False - WARNINGS_AS_ERRORS: ON + WARNINGS_AS_ERRORS: OFF - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 BUILD: CYGWIN64 INTEGRATION_TESTS: 1 ARCHITECTURE: x86_64 UNIT_TESTS: 1 WEBREADY: False - WARNINGS_AS_ERRORS: ON + WARNINGS_AS_ERRORS: OFF shallow_clone: true @@ -39,7 +39,7 @@ install: build_script: - cmd: set CMD=mkdir -p build - cmd: set CMD=%CMD%; cd build - - cmd: set CMD=%CMD%; cmake .. -G 'Unix Makefiles' -DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_FLAGS=-Wno-deprecated + - cmd: set CMD=%CMD%; cmake .. -G 'Unix Makefiles' - cmd: set CMD=%CMD%; cmake --build . --config Release - cmd: rem echo %CMD% - cd %APPVEYOR_BUILD_FOLDER% @@ -47,7 +47,7 @@ build_script: - cmd: set CMD=which python3 python - cmd: set CMD=%CMD%; python --version - cmd: set CMD=%CMD%; build/bin/exiv2 --verbose --version; pwd ; ls -l - - cmd: set CMD=%CMD%; cd build ; cmake --build . --config Release --target python_tests + - cmd: set CMD=%CMD%; cd build ; cmake --build . --config Release --target python_tests - cmd: echo %CMD% - cd %APPVEYOR_BUILD_FOLDER% - cmd: if "%BUILD%"=="MINGW64" C:\msys64\usr\bin\bash -c "%CMD%" @@ -55,7 +55,7 @@ build_script: - cmd: set CMD=rm -rf build - cmd: set CMD=%CMD%; mkdir -p build - cmd: set CMD=%CMD%; cd build - - cmd: set CMD=%CMD%;cmake .. -DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_FLAGS=-Wno-deprecated + - cmd: set CMD=%CMD%;cmake .. - cmd: set CMD=%CMD%; make - cmd: set CMD=%CMD%; make python_tests - cmd: echo %CMD% From 9870367783eac948094a788a84495627329848b6 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Sat, 17 Apr 2021 15:21:25 +0100 Subject: [PATCH 5/5] GitLab/Fedora/MinGW Disable EXIV2_TEAM_WARNINGS_AS_ERRORS. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6881cb65..adc36d13 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,7 +42,7 @@ Fedora_MinGW: - dnf -y upgrade - dnf -y install mingw64-gcc-c++ mingw64-filesystem mingw64-expat mingw64-zlib cmake make script: - - python3 ci/test_build.py --without-tests --cmake-executable "mingw64-cmake" --cmake-options "-DEXIV2_TEAM_EXTRA_WARNINGS=ON -DEXIV2_ENABLE_VIDEO=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_WIN_UNICODE=ON " --compilers --shared-libs OFF + - python3 ci/test_build.py --without-tests --cmake-executable "mingw64-cmake" --cmake-options "-DEXIV2_TEAM_EXTRA_WARNINGS=OFF -DEXIV2_TEAM_WARNINGS_AS_ERRORS=OFF -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_WIN_UNICODE=ON " --compilers --shared-libs OFF Debian: image: debian:9