From: Vladislav Sovrasov Date: Mon, 26 Jun 2017 09:30:03 +0000 (+0300) Subject: core: forbid handling of the case when src=dst in cv::repeat X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~908^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f9871817a97b31eae197a0a1e4e777fcd5b03fc;p=platform%2Fupstream%2Fopencv.git core: forbid handling of the case when src=dst in cv::repeat --- diff --git a/modules/core/src/copy.cpp b/modules/core/src/copy.cpp index ec039d4..87c0b9d 100644 --- a/modules/core/src/copy.cpp +++ b/modules/core/src/copy.cpp @@ -856,6 +856,7 @@ void repeat(InputArray _src, int ny, int nx, OutputArray _dst) { CV_INSTRUMENT_REGION() + CV_Assert(_src.getObj() != _dst.getObj()); CV_Assert( _src.dims() <= 2 ); CV_Assert( ny > 0 && nx > 0 ); diff --git a/modules/core/test/test_misc.cpp b/modules/core/test/test_misc.cpp index e018d74..edbd184 100644 --- a/modules/core/test/test_misc.cpp +++ b/modules/core/test/test_misc.cpp @@ -145,3 +145,12 @@ TEST(Core_String, end_method_regression) cv::String new_string(old_string.begin(), old_string.end()); EXPECT_EQ(6u, new_string.size()); } + +TEST(Core_Copy, repeat_regression_8972) +{ + Mat src = (Mat_(1, 4) << 1, 2, 3, 4); + + ASSERT_ANY_THROW({ + repeat(src, 5, 1, src); + }); +}