Fix harmless signed integer overflow.

When computing:
t1 = (bayer[1] + bayer[bayer_step] + bayer[bayer_step+2] + bayer[bayer_step*2+1])*G2Y;
there is a T (unsigned short or char) multiplied by an int which can overflow.
Then again, it is stored to t1 which is unsigned so the overflow disappears.
Keeping all unsigned is safer.
pull/21251/head
Vincent Rabaud 3 years ago
parent 5462710103
commit 542b3e8a64
  1. 2
      modules/imgproc/src/demosaicing.cpp

@ -603,7 +603,7 @@ public:
virtual void operator ()(const Range& range) const CV_OVERRIDE
{
SIMDInterpolator vecOp;
const int G2Y = 9617;
const unsigned G2Y = 9617;
const int SHIFT = 14;
const T* bayer0 = srcmat.ptr<T>();

Loading…
Cancel
Save