mirror of
https://github.com/opencv/opencv.git
synced 2025-06-09 18:43:05 +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;
|
||||
|
||||
if( (cn != 1 && cn != 3 && cn != 4) || sstep > 0x8000 )
|
||||
if( (cn != 1 && cn != 3 && cn != 4) || sstep >= 0x8000 )
|
||||
return 0;
|
||||
|
||||
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)
|
||||
{
|
||||
Point2f A_sample[3];
|
||||
|
Loading…
Reference in New Issue
Block a user