From: zihaomu Date: Wed, 28 Dec 2022 09:16:11 +0000 (+0800) Subject: fix invalid memory access X-Git-Tag: accepted/tizen/unified/20230127.161057~1^2~3^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71765858dcef42301006daca9f3fc672dfbdce94;p=platform%2Fupstream%2Fopencv.git fix invalid memory access --- diff --git a/modules/dnn/src/layers/fast_convolution/fast_convolution.cpp b/modules/dnn/src/layers/fast_convolution/fast_convolution.cpp index 02d7121f5e..1cde7b324f 100644 --- a/modules/dnn/src/layers/fast_convolution/fast_convolution.cpp +++ b/modules/dnn/src/layers/fast_convolution/fast_convolution.cpp @@ -448,7 +448,8 @@ void runFastConv(InputArray _input, OutputArray _output, const Ptr& co int dilation_d = conv->dilation_d, dilation_h = conv->dilation_h, dilation_w = conv->dilation_w; int ksize = Dk*Hk*Wk; - bool fast_1x1 = stride_d == 1 && stride_w == 1 && stride_h == 1 && ksize == 1; + bool fast_1x1 = ksize == 1 && stride_d == 1 && stride_w == 1 && stride_h == 1 && + pad_front == 0 && pad_top == 0 && pad_left == 0; int DkHkWkCg = Dk*Hk*Wk*Cg; std::vector ofstab_(Hk*Wk*Dk*4, 0); @@ -736,7 +737,8 @@ void runFastConv(InputArray _input, OutputArray _output, const Ptr& co int d0 = std::max(0, (-in_d + dilation_d - 1) / dilation_d); int d1 = std::min(Dk, (Di - in_d + dilation_d - 1) / dilation_d); - bool ok_i = 0 <= in_h && in_h < Hi - (Hk-1)*dilation_h; + bool ok_i = 0 <= in_d && in_d < Di - (Dk-1)*dilation_d && + 0 <= in_h && in_h < Hi - (Hk-1)*dilation_h; int h0 = std::max(0, (-in_h + dilation_h-1)/dilation_h); int h1 = std::min(Hk, (Hi - in_h + dilation_h-1)/dilation_h);