Merge pull request #21779 from eplankin:fix_11303
Fixed out-of-bounds read in parallel version of ippGaussianBlur() * Fixed out-of-memory read in parallel version of ippGaussianBlur() * Fixed check * Revert changes in CMakeLists.txt
This commit is contained in:
parent
84b4a5a495
commit
d793ec2ffe
@ -566,7 +566,7 @@ static bool ipp_GaussianBlur(InputArray _src, OutputArray _dst, Size ksize,
|
||||
if (IPP_DISABLE_GAUSSIAN_BLUR_32FC4_1TH && (threads == 1 && src.type() == CV_32FC4))
|
||||
return false;
|
||||
|
||||
if(IPP_GAUSSIANBLUR_PARALLEL && threads > 1) {
|
||||
if(IPP_GAUSSIANBLUR_PARALLEL && threads > 1 && iwSrc.m_size.height/(threads * 4) >= ksize.height/2) {
|
||||
bool ok;
|
||||
ipp_gaussianBlurParallel invoker(iwSrc, iwDst, ksize.width, (float) sigma1, ippBorder, &ok);
|
||||
|
||||
|
||||
@ -2355,5 +2355,16 @@ TEST(Imgproc, filter_empty_src_16857)
|
||||
EXPECT_TRUE(dst2.empty());
|
||||
}
|
||||
|
||||
TEST(Imgproc_GaussianBlur, regression_11303)
|
||||
{
|
||||
cv::Mat dst;
|
||||
int width = 2115;
|
||||
int height = 211;
|
||||
double sigma = 8.64421;
|
||||
cv::Mat src(cv::Size(width, height), CV_32F, 1);
|
||||
cv::GaussianBlur(src, dst, cv::Size(), sigma, sigma);
|
||||
EXPECT_LE(cv::norm(src, dst, NORM_L2), 1e-3);
|
||||
}
|
||||
|
||||
|
||||
}} // namespace
|
||||
|
||||
Loading…
Reference in New Issue
Block a user