Hello community, here is the log from the commit of package libmatroska for openSUSE:Factory checked in at 2019-07-12 11:59:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmatroska (Old) and /work/SRC/openSUSE:Factory/.libmatroska.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmatroska" Fri Jul 12 11:59:27 2019 rev:48 rq:714710 version:1.5.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libmatroska/libmatroska.changes 2019-04-23 14:34:00.953383109 +0200 +++ /work/SRC/openSUSE:Factory/.libmatroska.new.4615/libmatroska.changes 2019-07-12 11:59:30.852171364 +0200 @@ -1,0 +2,10 @@ +Wed Jul 10 14:27:35 UTC 2019 - Ferdinand Thiessen <r...@fthiessen.de> + +- Update to version 1.5.2: + * Fix boo#1141027 + * KaxBlock: fixed a potential access to invalid memory due to + invalid lace sizes read from invalid data. + * KaxBlock: fixed a potential null pointer dereference triggerable + by reading invalid data. + +------------------------------------------------------------------- Old: ---- libmatroska-1.5.0.tar.xz New: ---- libmatroska-1.5.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmatroska.spec ++++++ --- /var/tmp/diff_new_pack.Ojwxi3/_old 2019-07-12 11:59:31.788171392 +0200 +++ /var/tmp/diff_new_pack.Ojwxi3/_new 2019-07-12 11:59:31.792171393 +0200 @@ -18,7 +18,7 @@ %define sover 6 Name: libmatroska -Version: 1.5.0 +Version: 1.5.2 Release: 0 Summary: Library to Deal with Matroska Files License: LGPL-2.1+ @@ -32,7 +32,7 @@ BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: pkgconfig -BuildRequires: pkgconfig(libebml) >= 1.3.7 +BuildRequires: pkgconfig(libebml) >= 1.3.9 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -90,7 +90,7 @@ %defattr(-,root,root) %{_libdir}/libmatroska.so %{_libdir}/pkgconfig/*.pc -%{_libdir}/cmake/matroska +%{_libdir}/cmake/Matroska %{_includedir}/matroska %changelog ++++++ libmatroska-1.5.0.tar.xz -> libmatroska-1.5.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/CMakeLists.txt new/libmatroska-1.5.2/CMakeLists.txt --- old/libmatroska-1.5.0/CMakeLists.txt 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/CMakeLists.txt 2019-05-27 15:46:27.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.1.2) -project(matroska VERSION 1.5.0) +project(matroska VERSION 1.5.2) option(DISABLE_PKGCONFIG "Disable PkgConfig module generation" OFF) option(DISABLE_CMAKE_CONFIG "Disable CMake package config module generation" OFF) -find_package(Ebml 1.3.7 REQUIRED) +find_package(EBML 1.3.9 REQUIRED) include(GNUInstallDirs) @@ -59,8 +59,8 @@ matroska/c/libmatroska.h matroska/c/libmatroska_t.h) -add_library(matroska ${libmatroska_SOURCES} ${limatroska_PUBLIC_HEADERS} ${libmatroska_C_PUBLIC_HEADERS}) -target_link_libraries(matroska PUBLIC ebml) +add_library(matroska ${libmatroska_SOURCES} ${libmatroska_PUBLIC_HEADERS} ${libmatroska_C_PUBLIC_HEADERS}) +target_link_libraries(matroska PUBLIC EBML::ebml) set_target_properties(matroska PROPERTIES VERSION 6.0.0 SOVERSION 6) @@ -72,7 +72,8 @@ endif() if(BUILD_SHARED_LIBS) target_compile_definitions(matroska PUBLIC MATROSKA_DLL) - set_target_properties(matroska PROPERTIES DEFINE_SYMBOL "MATROSKA_DLL_EXPORT") + set_target_properties(matroska PROPERTIES + DEFINE_SYMBOL MATROSKA_DLL_EXPORT) endif() install(TARGETS matroska @@ -95,16 +96,14 @@ endif() if(NOT DISABLE_CMAKE_CONFIG) - if(WIN32) - set(CMAKE_INSTALL_PACKAGEDIR cmake) - else() - set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) - endif() + set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/Matroska) include(CMakePackageConfigHelpers) + configure_package_config_file(MatroskaConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/MatroskaConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) write_basic_package_version_file(MatroskaConfigVersion.cmake COMPATIBILITY SameMajorVersion) - install(EXPORT MatroskaTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) + install(EXPORT MatroskaTargets NAMESPACE Matroska:: DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) install(FILES - ${CMAKE_CURRENT_SOURCE_DIR}/MatroskaConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/MatroskaConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/MatroskaConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/ChangeLog new/libmatroska-1.5.2/ChangeLog --- old/libmatroska-1.5.0/ChangeLog 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/ChangeLog 2019-05-27 15:46:27.000000000 +0200 @@ -1,3 +1,31 @@ +2019-05-27 Moritz Bunkus <mor...@bunkus.org> + + * Released v1.5.2. + +2019-05-27 evpobr <evp...@gmail.com> + + * Build system: fixed symbol visibility issue causing linker + failures since 1.5.1. + +2019-05-25 Moritz Bunkus <mor...@bunkus.org> + + * Released v1.5.1. + + * Build system: libEBML 1.3.8 is now required. + +2019-05-19 evpobr <evp...@gmail.com> + + * Build system: various fixes to the cmake rules regarding + visibility, naming and building DLLs on Windows. + +2019-05-19 Steve Lhomme <rob...@ycbcr.xyz> + + * KaxBlock: fixed a potential access to invalid memory due to + invalid lace sizes read from invalid data. + + * KaxBlock: fixed a potential null pointer dereference triggerable + by reading invalid data. + 2019-03-12 Moritz Bunkus <mor...@bunkus.org> * Released v1.5.0. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/MatroskaConfig.cmake new/libmatroska-1.5.2/MatroskaConfig.cmake --- old/libmatroska-1.5.0/MatroskaConfig.cmake 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/MatroskaConfig.cmake 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -include(${CMAKE_CURRENT_LIST_DIR}/MatroskaTargets.cmake) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/MatroskaConfig.cmake.in new/libmatroska-1.5.2/MatroskaConfig.cmake.in --- old/libmatroska-1.5.0/MatroskaConfig.cmake.in 1970-01-01 01:00:00.000000000 +0100 +++ new/libmatroska-1.5.2/MatroskaConfig.cmake.in 2019-05-27 15:46:27.000000000 +0200 @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(EBML REQUIRED) + +include(${CMAKE_CURRENT_LIST_DIR}/MatroskaTargets.cmake) + +check_required_components(Matroska) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/libmatroska.proj new/libmatroska-1.5.2/libmatroska.proj --- old/libmatroska-1.5.0/libmatroska.proj 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/libmatroska.proj 2019-05-27 15:46:27.000000000 +0200 @@ -13,7 +13,7 @@ LIB matroska { - PROJECT_VERSION 1.5.0 + PROJECT_VERSION 1.5.2 USE libmatroska_coremake_automake INCLUDE . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/matroska/KaxBlock.h new/libmatroska-1.5.2/matroska/KaxBlock.h --- old/libmatroska-1.5.0/matroska/KaxBlock.h 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/matroska/KaxBlock.h 2019-05-27 15:46:27.000000000 +0200 @@ -205,7 +205,7 @@ const KaxTrackEntry * ParentTrack; }; -class KaxInternalBlock : public EbmlBinary { +class MATROSKA_DLL_API KaxInternalBlock : public EbmlBinary { public: KaxInternalBlock(EBML_DEF_CONS EBML_DEF_SEP bool bSimple EBML_DEF_SEP EBML_EXTRA_PARAM) :EBML_DEF_BINARY_INIT EBML_DEF_SEP bLocalTimecodeUsed(false), mLacing(LACING_AUTO), mInvisible(false) ,ParentCluster(NULL), bIsSimple(bSimple), bIsKeyframe(true), bIsDiscardable(false) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/matroska/KaxVersion.h new/libmatroska-1.5.2/matroska/KaxVersion.h --- old/libmatroska-1.5.0/matroska/KaxVersion.h 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/matroska/KaxVersion.h 2019-05-27 15:46:27.000000000 +0200 @@ -40,7 +40,7 @@ START_LIBMATROSKA_NAMESPACE -#define LIBMATROSKA_VERSION 0x010500 +#define LIBMATROSKA_VERSION 0x010502 extern const std::string KaxCodeVersion; extern const std::string KaxCodeDate; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/src/KaxBlock.cpp new/libmatroska-1.5.2/src/KaxBlock.cpp --- old/libmatroska-1.5.0/src/KaxBlock.cpp 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/src/KaxBlock.cpp 2019-05-27 15:46:27.000000000 +0200 @@ -628,11 +628,12 @@ // put all Frames in the list if (mLacing != LACING_NONE) { // read the number of frames in the lace - uint32 LastBufferSize = GetSize() - BlockHeadSize - 1; // 1 for number of frame + const uint32 TotalLacedSize = GetSize() - BlockHeadSize - 1; // 1 for number of frame + uint32 LastBufferSize = TotalLacedSize; uint8 FrameNum = _TempHead[0]; // number of frames in the lace - 1 // read the list of frame sizes uint8 Index; - int32 FrameSize; + uint32 FrameSize; uint32 SizeRead; uint64 SizeUnknown; @@ -646,6 +647,8 @@ do { Result += input.read(_TempHead, 1); FrameSize += uint8(_TempHead[0]); + if (FrameSize > TotalLacedSize) + throw SafeReadIOCallback::EndOfStreamX(0); LastBufferSize--; FirstFrameLocation++; @@ -662,6 +665,8 @@ cursor = _tmpBuf = new binary[FrameNum*4]; /// \warning assume the mean size will be coded in less than 4 bytes Result += input.read(cursor, FrameNum*4); FrameSize = ReadCodedSizeValue(cursor, SizeRead, SizeUnknown); + if (FrameSize > TotalLacedSize) + throw SafeReadIOCallback::EndOfStreamX(0); SizeList[0] = FrameSize; cursor += SizeRead; LastBufferSize -= FrameSize + SizeRead; @@ -670,6 +675,8 @@ // get the size of the frame SizeRead = LastBufferSize; FrameSize += ReadCodedSizeSignedValue(cursor, SizeRead, SizeUnknown); + if (FrameSize > TotalLacedSize) + throw SafeReadIOCallback::EndOfStreamX(0); SizeList[Index] = FrameSize; cursor += SizeRead; LastBufferSize -= FrameSize + SizeRead; @@ -703,7 +710,6 @@ } catch (SafeReadIOCallback::EndOfStreamX &) { SetValueIsSet(false); - std::memset(EbmlBinary::GetBuffer(), 0, GetSize()); myBuffers.clear(); SizeList.clear(); Timecode = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmatroska-1.5.0/src/KaxVersion.cpp new/libmatroska-1.5.2/src/KaxVersion.cpp --- old/libmatroska-1.5.0/src/KaxVersion.cpp 2019-03-12 20:54:34.000000000 +0100 +++ new/libmatroska-1.5.2/src/KaxVersion.cpp 2019-05-27 15:46:27.000000000 +0200 @@ -37,7 +37,7 @@ START_LIBMATROSKA_NAMESPACE -const std::string KaxCodeVersion = "1.5.0"; +const std::string KaxCodeVersion = "1.5.2"; // Up to version 1.4.4 this library exported a build date string. As // this made the build non-reproducible, replace it by a placeholder to