matrix.cpp::setSize(): fixed out-of-bounds access on cv::Mat steps

pull/18473/head
Mario Emmenlauer 4 years ago
parent a5b8f163d7
commit 102d8f67cd
  1. 11
      modules/core/src/matrix.cpp

@ -236,13 +236,20 @@ void setSize( Mat& m, int _dims, const int* _sz, const size_t* _steps, bool auto
m.size.p[i] = s;
if( _steps )
{
if (i < _dims-1)
{
if (_steps[i] % esz1 != 0)
{
CV_Error(Error::BadStep, "Step must be a multiple of esz1");
CV_Error_(Error::BadStep, ("Step %zu for dimension %d must be a multiple of esz1 %zu", _steps[i], i, esz1));
}
m.step.p[i] = i < _dims-1 ? _steps[i] : esz;
m.step.p[i] = _steps[i];
}
else
{
m.step.p[i] = esz;
}
}
else if( autoSteps )
{

Loading…
Cancel
Save