Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Buffer overrun in ippiFilterRow?

amantri
Beginner
307 Views

Hi,

When I call the ippiFilterRow function with small arrays, more memory is being modified than the dimensions specified in the ROI. An example is shown below.The bug happens whenlen<=10 in the following code. For len>=11, it works allright.

 const int len = 7;
float pSrc[len];// Using a vector of dimensions len x 1
float pDst[2*len] = {0};// Zero the destination
for(int i=0; i = i*i;// Fill the source
const int filterLen = 3;
float filter[filterLen] = {0.5, 0, -0.5};
int filterAnchor = 1;
IppStatus ippiReturnStatus;
IppiSize roiSize;
// Should modify only (len-2)x1 elements in the destination.
// pSrc+1 and len-2 is for handling the border pixels correctly.
roiSize.width=len-2; roiSize.height=1;
ippiReturnStatus = ippiFilterRow_32f_C1R( pSrc+1, len*sizeof(float), pDst+1, len*sizeof(float), roiSize, filter, filterLen, filterAnchor);

Platform: Windows XP with Visual Studio 6 and IPP 4.1

Please let me know if I am missing something in the above code.
Is this a known bug, and are there any fixes for it? (I tried searching for this problem, but didnt find anything).
(Also, updating to IPP 5.1 is not an option at the moment, though it would help to know if the bug is fixed in 5.1)

Thanks

Anup Mantri

0 Kudos
1 Reply
Chao_Y_Intel
Moderator
307 Views


Hi Anup,
There is one known bug on IPP5.1 with ippiFilterRow_32f_C1R. We fixed on IPP5.0. so could you help to check with latest IPP release?

Regards,
Chao

0 Kudos
Reply