Error: *** stack smashing detected ***: <unknown> terminated Aborted (core dumped)

Dear all,

I am facing this error during compilation a cuda file:

*** stack smashing detected ***: terminated
Aborted (core dumped)
I found that when I comment out the 11th line it works.

double *dev_coefficientsArray;
cuDoubleComplex *dev_rxCarrierSignal;
cuDoubleComplex *dev_timeSignalArray;
cudaMalloc((void**)&dev_coefficientsArray, numberOfUEs*sizeof(double));
cudaMemcpy(dev_coefficientsArray, coefficientsArray, numberOfUEs*sizeof(double), cudaMemcpyHostToDevice);
cudaMalloc((void**)&dev_rxCarrierSignal, FFT_size*sizeof(cuDoubleComplex));
cudaMemcpy(dev_rxCarrierSignal, rxCarrierSignal, FFT_size*sizeof(cuDoubleComplex), cudaMemcpyHostToDevice);
cudaMalloc((void**)&dev_timeSignalArray, FFT_size*numberOfUEs*sizeof(cuDoubleComplex));
deviceTimeSignal << < numberOfUEs, FFT_size >> >(dev_timeSignalArray, dev_rxCarrierSignal, dev_coefficientsArray);
cuDoubleComplex *timeSignalArray;
cudaMemcpy(&timeSignalArray, dev_timeSignalArray, FFT_size*numberOfUEs*sizeof(cuDoubleComplex), 
cudaMemcpyDeviceToHost);
cudaFree(dev_timeSignalArray);
cudaFree(dev_rxCarrierSignal);
cudaFree(dev_timeSignalArray);

May you advice something?
Thank you

this is broken code:

cuDoubleComplex *timeSignalArray;
cudaMemcpy(&timeSignalArray, dev_timeSignalArray, FFT_size*numberOfUEs*sizeof(cuDoubleComplex), 
cudaMemcpyDeviceToHost);

You haven’t provided any allocation for timeSignalArray to point to. It should be something like this:

cuDoubleComplex *timeSignalArray;
timeSignalArray = (cuDoubleComplex *)malloc(FFT_size*numberOfUEs*sizeof(cuDoubleComplex));
cudaMemcpy(timeSignalArray, dev_timeSignalArray, FFT_size*numberOfUEs*sizeof(cuDoubleComplex), 
cudaMemcpyDeviceToHost);

Note that I have added a line in the middle AND removed the ampersand in the 3rd line.

Thank you, txbob. Now it works.