Fix UB in CopyMakeConstBoder_8u

Caused by overflow of arithmetic operators conversion rank
pull/19603/head
Federico Martinez 4 years ago committed by Alexander Alekhin
parent 20a46b31cd
commit 773262bc09
  1. 7
      modules/core/src/copy.cpp

@ -1325,13 +1325,12 @@ void copyMakeConstBorder_8u( const uchar* src, size_t srcstep, cv::Size srcroi,
memcpy( dstInner + srcroi.width, constBuf, right );
}
dst += dststep*top;
for( i = 0; i < top; i++ )
memcpy(dst + (i - top)*dststep, constBuf, dstroi.width);
memcpy(dst + i * dststep, constBuf, dstroi.width);
dst += (top + srcroi.height) * dststep;
for( i = 0; i < bottom; i++ )
memcpy(dst + (i + srcroi.height)*dststep, constBuf, dstroi.width);
memcpy(dst + i * dststep, constBuf, dstroi.width);
}
}

Loading…
Cancel
Save