mirror of
https://github.com/jkl1337/SwiftPFFFT.git
synced 2026-01-02 03:34:31 -06:00
Avoid UB, check the return values of allocation
This commit is contained in:
@@ -1061,12 +1061,14 @@ SETUP_STRUCT *FUNC_NEW_SETUP(int N, pffft_transform_t transform) {
|
||||
if (transform == PFFFT_REAL) { if ((N%(2*SIMD_SZ*SIMD_SZ)) || N<=0) return s; }
|
||||
if (transform == PFFFT_COMPLEX) { if ((N%( SIMD_SZ*SIMD_SZ)) || N<=0) return s; }
|
||||
s = (SETUP_STRUCT*)malloc(sizeof(SETUP_STRUCT));
|
||||
if (!s) return s;
|
||||
/* assert((N % 32) == 0); */
|
||||
s->N = N;
|
||||
s->transform = transform;
|
||||
/* nb of complex simd vectors */
|
||||
s->Ncvec = (transform == PFFFT_REAL ? N/2 : N)/SIMD_SZ;
|
||||
s->data = (v4sf*)FUNC_ALIGNED_MALLOC(2*s->Ncvec * sizeof(v4sf));
|
||||
if (!s->data) { free(s); return 0; }
|
||||
s->e = (float*)s->data;
|
||||
s->twiddle = (float*)(s->data + (2*s->Ncvec*(SIMD_SZ-1))/SIMD_SZ);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user