diff options
Diffstat (limited to 'meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch')
-rw-r--r-- | meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch new file mode 100644 index 0000000000..0140633db3 --- /dev/null +++ b/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch @@ -0,0 +1,127 @@ +Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/0d854db361106dfcb055231fd0112c5b85ef2287] + +Fix CVEs for opencv 3.3. + +* CVE-2017-12597 +* CVE-2017-12598 +* CVE-2017-12599 +* CVE-2017-12600 +* CVE-2017-12601 +* CVE-2017-12602 +* CVE-2017-12603 +* CVE-2017-12604 +* CVE-2017-12605 +* CVE-2017-12606 +* CVE-2017-12862 +* CVE-2017-12863 +* CVE-2017-12864 + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- +From 0d854db361106dfcb055231fd0112c5b85ef2287 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin <alexander.a.alekhin@gmail.com> +Date: Tue, 15 Aug 2017 21:45:05 +0000 +Subject: [PATCH 1/3] build: workaround GCC 7.1.1 compilation issue with + sanitize flags + +Version: gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3) +Flags: -fsanitize=address,undefined +--- + modules/ts/src/cuda_test.cpp | 56 ++++++++++++++++++++++++++------------------ + 1 file changed, 33 insertions(+), 23 deletions(-) + +diff --git a/modules/ts/src/cuda_test.cpp b/modules/ts/src/cuda_test.cpp +index a48e0a087..eb4cee136 100644 +--- a/modules/ts/src/cuda_test.cpp ++++ b/modules/ts/src/cuda_test.cpp +@@ -322,16 +322,20 @@ namespace cvtest + + if (m1.size() != m2.size()) + { +- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \"" +- << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \"" +- << expr2 << "\" [" << PrintToString(m2.size()) << "]"; ++ std::stringstream msg; ++ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \"" ++ << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \"" ++ << expr2 << "\" [" << PrintToString(m2.size()) << "]"; ++ return AssertionFailure() << msg.str(); + } + + if (m1.type() != m2.type()) + { +- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \"" +- << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \"" +- << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]"; ++ std::stringstream msg; ++ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \"" ++ << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \"" ++ << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]"; ++ return AssertionFailure() << msg.str(); + } + + Mat diff; +@@ -343,12 +347,14 @@ namespace cvtest + + if (maxVal > eps) + { +- return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2 +- << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")" +- << ", which exceeds \"" << eps_expr << "\", where \"" +- << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \"" +- << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \"" +- << eps_expr << "\" evaluates to " << eps; ++ std::stringstream msg; ++ msg << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2 ++ << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")" ++ << ", which exceeds \"" << eps_expr << "\", where \"" ++ << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \"" ++ << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \"" ++ << eps_expr << "\" evaluates to " << eps; ++ return AssertionFailure() << msg.str(); + } + + return AssertionSuccess(); +@@ -469,9 +475,11 @@ namespace cvtest + { + if (gold.size() != actual.size()) + { +- return testing::AssertionFailure() << "KeyPoints size mistmach\n" +- << "\"" << gold_expr << "\" : " << gold.size() << "\n" +- << "\"" << actual_expr << "\" : " << actual.size(); ++ std::stringstream msg; ++ msg << "KeyPoints size mistmach\n" ++ << "\"" << gold_expr << "\" : " << gold.size() << "\n" ++ << "\"" << actual_expr << "\" : " << actual.size(); ++ return AssertionFailure() << msg.str(); + } + + std::sort(actual.begin(), actual.end(), KeyPointLess()); +@@ -484,14 +492,16 @@ namespace cvtest + + if (!keyPointsEquals(p1, p2)) + { +- return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n" +- << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n" +- << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n" +- << "size : " << p1.size << " vs " << p2.size << "\n" +- << "angle : " << p1.angle << " vs " << p2.angle << "\n" +- << "response : " << p1.response << " vs " << p2.response << "\n" +- << "octave : " << p1.octave << " vs " << p2.octave << "\n" +- << "class_id : " << p1.class_id << " vs " << p2.class_id; ++ std::stringstream msg; ++ msg << "KeyPoints differ at " << i << "\n" ++ << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n" ++ << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n" ++ << "size : " << p1.size << " vs " << p2.size << "\n" ++ << "angle : " << p1.angle << " vs " << p2.angle << "\n" ++ << "response : " << p1.response << " vs " << p2.response << "\n" ++ << "octave : " << p1.octave << " vs " << p2.octave << "\n" ++ << "class_id : " << p1.class_id << " vs " << p2.class_id; ++ return AssertionFailure() << msg.str(); + } + } + +-- +2.14.1 + |