- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi all,
when I invoke the function ippsCrossCorr_64f() (cross correlation) with special arguments, it might crash:
ippsCrossCorr_64f(x, 2593, y, 64000, corrIpp, 16001, 32560);
It seems to me, that the amount of memory allocated on the heap before calling this function has an influence on whether it is crashing or not.
In order for you to reproduce the crash find below a minimal demo program as source code and as binary.
I use IPP version 6.1.6, which was statically linked, have a Pentium 4 3.2GHz and use Windows XP 32 bit.
Any idea what causes the crash, e.g. wrong parameters, bug in the function etc.?
Thank you
---------------------------------------------------------------------------------
#include
#include
#include
#include
// Constants
const int MAX_SIGNAL_LEN = 200000;
const int X_LEN = 66468;
const int Y_LEN = 68868;
double *myMalloc(int length)
{
// return (double*)malloc(length*sizeof(double));
// return (double*)ippsMalloc_8u(length*sizeof(double));
return ippsMalloc_64f(length);
}
void myFree(double *x)
{
// free(x);
ippsFree(x);
}
int main()
{
ippStaticInit();
double *corrIpp = (double*)myMalloc(MAX_SIGNAL_LEN);
memset(corrIpp, 0, MAX_SIGNAL_LEN*sizeof(double));
double *x = (double*)myMalloc(X_LEN);
memset(x, 0, (X_LEN)*sizeof(double));
double *y = (double*)myMalloc(Y_LEN);
memset(y, 0, Y_LEN*sizeof(double));
ippsCrossCorr_64f(x, 2593, y, 64000, corrIpp, 16001, 32560);
myFree(x);
myFree(y);
myFree(corrIpp);
return 0;
}
when I invoke the function ippsCrossCorr_64f() (cross correlation) with special arguments, it might crash:
ippsCrossCorr_64f(x, 2593, y, 64000, corrIpp, 16001, 32560);
It seems to me, that the amount of memory allocated on the heap before calling this function has an influence on whether it is crashing or not.
In order for you to reproduce the crash find below a minimal demo program as source code and as binary.
I use IPP version 6.1.6, which was statically linked, have a Pentium 4 3.2GHz and use Windows XP 32 bit.
Any idea what causes the crash, e.g. wrong parameters, bug in the function etc.?
Thank you
---------------------------------------------------------------------------------
#include
#include
#include
#include
// Constants
const int MAX_SIGNAL_LEN = 200000;
const int X_LEN = 66468;
const int Y_LEN = 68868;
double *myMalloc(int length)
{
// return (double*)malloc(length*sizeof(double));
// return (double*)ippsMalloc_8u(length*sizeof(double));
return ippsMalloc_64f(length);
}
void myFree(double *x)
{
// free(x);
ippsFree(x);
}
int main()
{
ippStaticInit();
double *corrIpp = (double*)myMalloc(MAX_SIGNAL_LEN);
memset(corrIpp, 0, MAX_SIGNAL_LEN*sizeof(double));
double *x = (double*)myMalloc(X_LEN);
memset(x, 0, (X_LEN)*sizeof(double));
double *y = (double*)myMalloc(Y_LEN);
memset(y, 0, Y_LEN*sizeof(double));
ippsCrossCorr_64f(x, 2593, y, 64000, corrIpp, 16001, 32560);
myFree(x);
myFree(y);
myFree(corrIpp);
return 0;
}
링크가 복사됨
1 응답
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hello,
I run the code and reproduced the problem. I escalated it to the function owner for future fix
Thanks,
Chao
