[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#988610: marked as done (unblock: libwebm/1.0.0.28-1)



Your message dated Mon, 17 May 2021 18:30:39 +0000
with message-id <E1lii0l-00085b-1r@respighi.debian.org>
and subject line unblock libwebm
has caused the Debian Bug report #988610,
regarding unblock: libwebm/1.0.0.28-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
988610: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988610
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: mattia@debian.org

Please unblock package libwebm

[ Reason ]

This is a bigfix release fixing several buffer overflows, finally
tagged after 5 years of upstream marinade.

[ Impact ]

Several flaws with security vulnerability potential will not be
addressed. However, no CVEs allocated to the date.

[ Tests ]

Automatic testsuite + mwnual checks by Kodi users (including myself)

[ Risks ]

This package is used primarily by kodi-inputstream-adaptive, so risk
is low.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]

unblock libwebm/1.0.0.28-1
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/build/cxx_flags.cmake libwebm-1.0.0.28/build/cxx_flags.cmake
--- libwebm-1.0.0.27+git20201124.485fb67/build/cxx_flags.cmake	2020-11-24 23:40:20.000000000 +0000
+++ libwebm-1.0.0.28/build/cxx_flags.cmake	2021-04-23 23:34:08.000000000 +0000
@@ -5,7 +5,6 @@
 ##  tree. An additional intellectual property rights grant can be found
 ##  in the file PATENTS.  All contributing project authors may
 ##  be found in the AUTHORS file in the root of the source tree.
-cmake_minimum_required(VERSION 3.2)
 
 include(CheckCXXCompilerFlag)
 
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/build/msvc_runtime.cmake libwebm-1.0.0.28/build/msvc_runtime.cmake
--- libwebm-1.0.0.27+git20201124.485fb67/build/msvc_runtime.cmake	2020-11-24 23:40:20.000000000 +0000
+++ libwebm-1.0.0.28/build/msvc_runtime.cmake	2021-04-23 23:34:08.000000000 +0000
@@ -5,7 +5,6 @@
 ##  tree. An additional intellectual property rights grant can be found
 ##  in the file PATENTS.  All contributing project authors may
 ##  be found in the AUTHORS file in the root of the source tree.
-cmake_minimum_required(VERSION 2.8)
 
 if (MSVC)
   # CMake defaults to producing code linked to the DLL MSVC runtime. In libwebm
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/CMakeLists.txt libwebm-1.0.0.28/CMakeLists.txt
--- libwebm-1.0.0.27+git20201124.485fb67/CMakeLists.txt	2020-11-24 23:40:20.000000000 +0000
+++ libwebm-1.0.0.28/CMakeLists.txt	2021-04-23 23:34:08.000000000 +0000
@@ -25,7 +25,8 @@
 option(ENABLE_WERROR "Enable warnings as errors." OFF)
 option(ENABLE_WEBM_PARSER "Enables new parser API." OFF)
 
-if(WIN32)
+if(WIN32 OR CYGWIN OR MSYS)
+  # Allow use of rand_r() / fdopen() and other POSIX functions.
   require_cxx_flag_nomsvc("-std=gnu++11")
 else()
   require_cxx_flag_nomsvc("-std=c++11")
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/CONTRIBUTING.md libwebm-1.0.0.28/CONTRIBUTING.md
--- libwebm-1.0.0.27+git20201124.485fb67/CONTRIBUTING.md	1970-01-01 00:00:00.000000000 +0000
+++ libwebm-1.0.0.28/CONTRIBUTING.md	2021-04-23 23:34:08.000000000 +0000
@@ -0,0 +1,29 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use a [Gerrit](https://www.gerritcodereview.com) instance hosted at
+https://chromium-review.googlesource.com for this purpose. See the
+[WebM Project page](https://www.webmproject.org/code/contribute/submitting-patches/)
+for additional details.
+
+## Community Guidelines
+
+This project follows
+[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/debian/changelog libwebm-1.0.0.28/debian/changelog
--- libwebm-1.0.0.27+git20201124.485fb67/debian/changelog	2021-01-21 20:25:40.000000000 +0000
+++ libwebm-1.0.0.28/debian/changelog	2021-05-08 21:47:39.000000000 +0000
@@ -1,3 +1,11 @@
+libwebm (1.0.0.28-1) unstable; urgency=medium
+
+  * New upstream version 1.0.0.28
+  * Switch to git tags in d/watch
+  * Bump library version in patch
+
+ -- Vasyl Gello <vasek.gello@gmail.com>  Sat, 08 May 2021 21:47:39 +0000
+
 libwebm (1.0.0.27+git20201124.485fb67-2) unstable; urgency=medium
 
   * Remove duplicated inclusion of -lpthread and -latomic
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/debian/patches/0003-Provide-SOVERSION.patch libwebm-1.0.0.28/debian/patches/0003-Provide-SOVERSION.patch
--- libwebm-1.0.0.27+git20201124.485fb67/debian/patches/0003-Provide-SOVERSION.patch	2021-01-21 20:25:40.000000000 +0000
+++ libwebm-1.0.0.28/debian/patches/0003-Provide-SOVERSION.patch	2021-05-08 21:47:39.000000000 +0000
@@ -15,7 +15,7 @@
 +else ()
 +  set_target_properties(webm PROPERTIES OUTPUT_NAME webm
 +                             SOVERSION "1"
-+                             VERSION "1.0.27")
++                             VERSION "1.0.0.28")
  endif ()
  
  add_executable(mkvparser_sample ${mkvparser_sample_sources})
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/debian/watch libwebm-1.0.0.28/debian/watch
--- libwebm-1.0.0.27+git20201124.485fb67/debian/watch	2021-01-21 20:25:40.000000000 +0000
+++ libwebm-1.0.0.28/debian/watch	2021-05-08 21:47:39.000000000 +0000
@@ -3,8 +3,8 @@
 # Bare git branch
 opts="mode=git, \
       pgpmode=none, \
-      pretty=1.0.0.27+git%cd.%h, \
       compression=xz, \
+      uversionmangle=s/libwebm-//, \
       dversionmangle=auto" \
 https://chromium.googlesource.com/webm/libwebm \
-HEAD debian
+refs/tags/libwebm-([\d\.]+) debian
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/mkvmuxer/mkvmuxerutil.cc libwebm-1.0.0.28/mkvmuxer/mkvmuxerutil.cc
--- libwebm-1.0.0.27+git20201124.485fb67/mkvmuxer/mkvmuxerutil.cc	2020-11-24 23:40:20.000000000 +0000
+++ libwebm-1.0.0.28/mkvmuxer/mkvmuxerutil.cc	2021-04-23 23:34:08.000000000 +0000
@@ -606,8 +606,8 @@
 
 void GetVersion(int32* major, int32* minor, int32* build, int32* revision) {
   *major = 0;
-  *minor = 2;
-  *build = 1;
+  *minor = 3;
+  *build = 0;
   *revision = 0;
 }
 
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/mkvmuxer_sample.cc libwebm-1.0.0.28/mkvmuxer_sample.cc
--- libwebm-1.0.0.27+git20201124.485fb67/mkvmuxer_sample.cc	2020-11-24 23:40:20.000000000 +0000
+++ libwebm-1.0.0.28/mkvmuxer_sample.cc	2021-04-23 23:34:08.000000000 +0000
@@ -66,7 +66,7 @@
   printf("                                   1: Equirectangular\n");
   printf("                                   2: Cube map\n");
   printf("                                   3: Mesh\n");
-  printf("  -projection_file <string>      Override projection private data");
+  printf("  -projection_file <string>      Override projection private data\n");
   printf("                                 with contents of this file\n");
   printf("  -projection_pose_yaw <float>   Projection pose yaw\n");
   printf("  -projection_pose_pitch <float> Projection pose pitch\n");
diff -Nru libwebm-1.0.0.27+git20201124.485fb67/mkvparser/mkvparser.cc libwebm-1.0.0.28/mkvparser/mkvparser.cc
--- libwebm-1.0.0.27+git20201124.485fb67/mkvparser/mkvparser.cc	2020-11-24 23:40:20.000000000 +0000
+++ libwebm-1.0.0.28/mkvparser/mkvparser.cc	2021-04-23 23:34:08.000000000 +0000
@@ -54,9 +54,9 @@
 
 void GetVersion(int& major, int& minor, int& build, int& revision) {
   major = 1;
-  minor = 0;
+  minor = 1;
   build = 0;
-  revision = 30;
+  revision = 0;
 }
 
 long long ReadUInt(IMkvReader* pReader, long long pos, long& len) {
@@ -1502,8 +1502,8 @@
 
   // first count the seek head entries
 
-  int entry_count = 0;
-  int void_element_count = 0;
+  long long entry_count = 0;
+  long long void_element_count = 0;
 
   while (pos < stop) {
     long long id, size;
@@ -1513,10 +1513,15 @@
     if (status < 0)  // error
       return status;
 
-    if (id == libwebm::kMkvSeek)
+    if (id == libwebm::kMkvSeek) {
       ++entry_count;
-    else if (id == libwebm::kMkvVoid)
+      if (entry_count > INT_MAX)
+        return E_PARSE_FAILED;
+    } else if (id == libwebm::kMkvVoid) {
       ++void_element_count;
+      if (void_element_count > INT_MAX)
+        return E_PARSE_FAILED;
+    }
 
     pos += size;  // consume payload
 
@@ -1582,13 +1587,13 @@
 
   ptrdiff_t count_ = ptrdiff_t(pEntry - m_entries);
   assert(count_ >= 0);
-  assert(count_ <= entry_count);
+  assert(static_cast<long long>(count_) <= entry_count);
 
   m_entry_count = static_cast<int>(count_);
 
   count_ = ptrdiff_t(pVoidElement - m_void_elements);
   assert(count_ >= 0);
-  assert(count_ <= void_element_count);
+  assert(static_cast<long long>(count_) <= void_element_count);
 
   m_void_element_count = static_cast<int>(count_);
 
@@ -2299,7 +2304,7 @@
   long long pos = pos_;
 
   // First count number of track positions
-
+  unsigned long long track_positions_count = 0;
   while (pos < stop) {
     long len;
 
@@ -2323,12 +2328,17 @@
     if (id == libwebm::kMkvCueTime)
       m_timecode = UnserializeUInt(pReader, pos, size);
 
-    else if (id == libwebm::kMkvCueTrackPositions)
-      ++m_track_positions_count;
+    else if (id == libwebm::kMkvCueTrackPositions) {
+      ++track_positions_count;
+      if (track_positions_count > UINT_MAX)
+        return E_PARSE_FAILED;
+    }
 
     pos += size;  // consume payload
   }
 
+  m_track_positions_count = static_cast<size_t>(track_positions_count);
+
   if (m_timecode < 0 || m_track_positions_count <= 0) {
     return false;
   }
@@ -4194,8 +4204,8 @@
   const long long stop = start + size;
 
   // Count ContentCompression and ContentEncryption elements.
-  int compression_count = 0;
-  int encryption_count = 0;
+  long long compression_count = 0;
+  long long encryption_count = 0;
 
   while (pos < stop) {
     long long id, size;
@@ -4203,11 +4213,17 @@
     if (status < 0)  // error
       return status;
 
-    if (id == libwebm::kMkvContentCompression)
+    if (id == libwebm::kMkvContentCompression) {
       ++compression_count;
+      if (compression_count > INT_MAX)
+        return E_PARSE_FAILED;
+    }
 
-    if (id == libwebm::kMkvContentEncryption)
+    if (id == libwebm::kMkvContentEncryption) {
       ++encryption_count;
+      if (encryption_count > INT_MAX)
+        return E_PARSE_FAILED;
+    }
 
     pos += size;  // consume payload
     if (pos > stop)
@@ -4918,7 +4934,7 @@
   const long long stop = start + size;
 
   // Count ContentEncoding elements.
-  int count = 0;
+  long long count = 0;
   while (pos < stop) {
     long long id, size;
     const long status = ParseElementHeader(pReader, pos, stop, id, size);
@@ -4926,8 +4942,11 @@
       return status;
 
     // pos now designates start of element
-    if (id == libwebm::kMkvContentEncoding)
+    if (id == libwebm::kMkvContentEncoding) {
       ++count;
+      if (count > INT_MAX)
+        return E_PARSE_FAILED;
+    }
 
     pos += size;  // consume payload
     if (pos > stop)
@@ -5653,7 +5672,7 @@
   const long long stop = m_start + m_size;
   IMkvReader* const pReader = m_pSegment->m_pReader;
 
-  int count = 0;
+  long long count = 0;
   long long pos = m_start;
 
   while (pos < stop) {
@@ -5667,8 +5686,11 @@
     if (size == 0)  // weird
       continue;
 
-    if (id == libwebm::kMkvTrackEntry)
+    if (id == libwebm::kMkvTrackEntry) {
       ++count;
+      if (count > INT_MAX)
+        return E_PARSE_FAILED;
+    }
 
     pos += size;  // consume payload
     if (pos > stop)

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: