mirror of
https://github.com/opencv/opencv.git
synced 2025-06-09 10:40:46 +08:00
imgproc(warpAffine): avoid buffer indexes overflow in SIMD code
This commit is contained in:
parent
20a46b31cd
commit
fadb25baf8
@ -446,7 +446,7 @@ struct RemapVec_8u
|
|||||||
{
|
{
|
||||||
int cn = _src.channels(), x = 0, sstep = (int)_src.step;
|
int cn = _src.channels(), x = 0, sstep = (int)_src.step;
|
||||||
|
|
||||||
if( (cn != 1 && cn != 3 && cn != 4) || sstep > 0x8000 )
|
if( (cn != 1 && cn != 3 && cn != 4) || sstep >= 0x8000 )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
const uchar *S0 = _src.ptr(), *S1 = _src.ptr(1);
|
const uchar *S0 = _src.ptr(), *S1 = _src.ptr(1);
|
||||||
|
@ -1781,6 +1781,26 @@ TEST(Imgproc_Warp, multichannel)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST(Imgproc_Warp, regression_19566) // valgrind should detect problem if any
|
||||||
|
{
|
||||||
|
const Size imgSize(8192, 8);
|
||||||
|
|
||||||
|
Mat inMat = Mat::zeros(imgSize, CV_8UC4);
|
||||||
|
Mat outMat = Mat::zeros(imgSize, CV_8UC4);
|
||||||
|
|
||||||
|
warpAffine(
|
||||||
|
inMat,
|
||||||
|
outMat,
|
||||||
|
getRotationMatrix2D(Point2f(imgSize.width / 2.0f, imgSize.height / 2.0f), 45.0, 1.0),
|
||||||
|
imgSize,
|
||||||
|
INTER_LINEAR,
|
||||||
|
cv::BORDER_CONSTANT,
|
||||||
|
cv::Scalar(0.0, 0.0, 0.0, 255.0)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(Imgproc_GetAffineTransform, singularity)
|
TEST(Imgproc_GetAffineTransform, singularity)
|
||||||
{
|
{
|
||||||
Point2f A_sample[3];
|
Point2f A_sample[3];
|
||||||
|
Loading…
Reference in New Issue
Block a user