Bug#866759: stretch-pu: package protozero/1.5.1-1+deb9u1

Bas Couwenberg sebastic at xs4all.nl
Sat Jul 1 14:19:15 UTC 2017


Package: release.debian.org
Severity: normal
Tags: stretch
User: release.debian.org at packages.debian.org
Usertags: pu

protozero 1.5.1 in stretch contains a serious bug that was fixed in
1.5.2. The fix has been cherry-picked and I'd like to upload this
proposed-update.

>From the changelog and patch description:

"
 This fixes a rather embarrassing bug in the equality operator of the
 data_view class. The equality operator is actually never used in the
 protozero code itself, but users of protozero might use it. This is a
 serious bug that could lead to buffer overrun type problems.
"

The issue was pointed out by the upstream author in:

 https://lists.debian.org/debian-gis/2017/07/msg00000.html

Kind Regards,

Bas
-------------- next part --------------
diff -Nru protozero-1.5.1/debian/changelog protozero-1.5.1/debian/changelog
--- protozero-1.5.1/debian/changelog	2017-01-14 11:19:51.000000000 +0100
+++ protozero-1.5.1/debian/changelog	2017-07-01 15:59:15.000000000 +0200
@@ -1,3 +1,14 @@
+protozero (1.5.1-1+deb9u1) stretch; urgency=medium
+
+  * Update branch in gbp.conf & Vcs-Git URL.
+  * Include upstream patch to fix data_view equality operator.
+    This fixes a rather embarrassing bug in the equality operator of the
+    data_view class. The equality operator is actually never used in the
+    protozero code itself, but users of protozero might use it. This is a
+    serious bug that could lead to buffer overrun type problems.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Sat, 01 Jul 2017 15:59:15 +0200
+
 protozero (1.5.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru protozero-1.5.1/debian/control protozero-1.5.1/debian/control
--- protozero-1.5.1/debian/control	2017-01-12 15:17:23.000000000 +0100
+++ protozero-1.5.1/debian/control	2017-07-01 15:59:12.000000000 +0200
@@ -11,7 +11,7 @@
                pkg-config
 Standards-Version: 3.9.8
 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-grass/protozero.git/
-Vcs-Git: https://anonscm.debian.org/git/pkg-grass/protozero.git
+Vcs-Git: https://anonscm.debian.org/git/pkg-grass/protozero.git -b stretch
 Homepage: https://github.com/mapbox/protozero
 
 Package: libprotozero-dev
diff -Nru protozero-1.5.1/debian/gbp.conf protozero-1.5.1/debian/gbp.conf
--- protozero-1.5.1/debian/gbp.conf	2017-01-12 15:17:23.000000000 +0100
+++ protozero-1.5.1/debian/gbp.conf	2017-07-01 15:59:12.000000000 +0200
@@ -6,7 +6,7 @@
 
 # The default name for the Debian branch is "master".
 # Change it if the name is different (for instance, "debian/unstable").
-debian-branch = master
+debian-branch = stretch
 
 # git-import-orig uses the following names for the upstream tags.
 # Change the value if you are not using git-import-orig
diff -Nru protozero-1.5.1/debian/patches/0001-Bugfix-in-data_view-equality-operator.patch protozero-1.5.1/debian/patches/0001-Bugfix-in-data_view-equality-operator.patch
--- protozero-1.5.1/debian/patches/0001-Bugfix-in-data_view-equality-operator.patch	1970-01-01 01:00:00.000000000 +0100
+++ protozero-1.5.1/debian/patches/0001-Bugfix-in-data_view-equality-operator.patch	2017-07-01 15:59:15.000000000 +0200
@@ -0,0 +1,63 @@
+Description: Bugfix in data_view equality operator.
+ This fixes a rather embarrassing bug in the equality operator of the
+ data_view class. The equality operator is actually never used in the
+ protozero code itself, but users of protozero might use it. This is a
+ serious bug that could lead to buffer overrun type problems.
+Author: Jochen Topf <jochen at topf.org>
+Origin: https://github.com/mapbox/protozero/commit/3d998ed0864f0db1d876d72a2658e5bdff9a0474
+
+--- a/include/protozero/types.hpp
++++ b/include/protozero/types.hpp
+@@ -16,6 +16,7 @@ documentation.
+  * @brief Contains the declaration of low-level types used in the pbf format.
+  */
+ 
++#include <algorithm>
+ #include <cstddef>
+ #include <cstdint>
+ #include <cstring>
+@@ -178,7 +179,7 @@ inline void swap(data_view& lhs, data_vi
+  * @param rhs Second object.
+  */
+ inline bool operator==(const data_view& lhs, const data_view& rhs) noexcept {
+-    return lhs.size() == rhs.size() && !std::strcmp(lhs.data(), rhs.data());
++    return lhs.size() == rhs.size() && std::equal(lhs.data(), lhs.data() + lhs.size(), rhs.data());
+ }
+ 
+ /**
+--- a/test/t/data_view/test_cases.cpp
++++ b/test/t/data_view/test_cases.cpp
+@@ -64,20 +64,32 @@ TEST_CASE("comparing data_views") {
+     protozero::data_view v2{"bar"};
+     protozero::data_view v3{"foox"};
+     protozero::data_view v4{"foo"};
++    protozero::data_view v5{"fooooooo", 3};
++    protozero::data_view v6{"f\0o", 3};
++    protozero::data_view v7{"f\0obar", 3};
+ 
+     REQUIRE_FALSE(v1 == v2);
+     REQUIRE_FALSE(v1 == v3);
+     REQUIRE(v1 == v4);
++    REQUIRE(v1 == v5);
++    REQUIRE_FALSE(v1 == v6);
++    REQUIRE_FALSE(v1 == v7);
+     REQUIRE_FALSE(v2 == v3);
+     REQUIRE_FALSE(v2 == v4);
+     REQUIRE_FALSE(v3 == v4);
++    REQUIRE(v4 == v5);
++    REQUIRE(v6 == v7);
+ 
+     REQUIRE(v1 != v2);
+     REQUIRE(v1 != v3);
+     REQUIRE_FALSE(v1 != v4);
++    REQUIRE_FALSE(v1 != v5);
++    REQUIRE(v1 != v6);
++    REQUIRE(v1 != v7);
+     REQUIRE(v2 != v3);
+     REQUIRE(v2 != v4);
+     REQUIRE(v3 != v4);
++    REQUIRE_FALSE(v4 != v5);
++    REQUIRE_FALSE(v6 != v7);
+ }
+ 
+-
diff -Nru protozero-1.5.1/debian/patches/series protozero-1.5.1/debian/patches/series
--- protozero-1.5.1/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ protozero-1.5.1/debian/patches/series	2017-07-01 15:59:15.000000000 +0200
@@ -0,0 +1 @@
+0001-Bugfix-in-data_view-equality-operator.patch


More information about the Pkg-grass-devel mailing list