summaryrefslogtreecommitdiffstats
path: root/libavcodec/fft-test.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-07-24 00:35:40 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-07-24 00:35:40 +0200
commit074bb7515e33780be35dd62e881cacd485cea382 (patch)
treec22c6eb19b13d85ca2617656bf9ba7d5b0416735 /libavcodec/fft-test.c
parent670b7f203ad24bccfe9effe81769b41f769052a6 (diff)
parentc3c96deb5f8cbbdb700ba97920ceedddacb5dcb9 (diff)
downloadffmpeg-streaming-074bb7515e33780be35dd62e881cacd485cea382.zip
ffmpeg-streaming-074bb7515e33780be35dd62e881cacd485cea382.tar.gz
Merge commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9'
* commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9': fft-test: Check memory allocations Conflicts: libavcodec/fft-test.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/fft-test.c')
-rw-r--r--libavcodec/fft-test.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/libavcodec/fft-test.c b/libavcodec/fft-test.c
index 7e87bef..aafcef0 100644
--- a/libavcodec/fft-test.c
+++ b/libavcodec/fft-test.c
@@ -67,11 +67,13 @@ static struct {
float re, im;
} *exptab;
-static void fft_ref_init(int nbits, int inverse)
+static int fft_ref_init(int nbits, int inverse)
{
int i, n = 1 << nbits;
exptab = av_malloc_array((n / 2), sizeof(*exptab));
+ if (!exptab)
+ return AVERROR(ENOMEM);
for (i = 0; i < (n/2); i++) {
double alpha = 2 * M_PI * (float)i / (float)n;
@@ -81,6 +83,7 @@ static void fft_ref_init(int nbits, int inverse)
exptab[i].re = c1;
exptab[i].im = s1;
}
+ return 0;
}
static void fft_ref(FFTComplex *tabr, FFTComplex *tab, int nbits)
@@ -293,6 +296,9 @@ int main(int argc, char **argv)
tab_ref = av_malloc_array(fft_size, sizeof(FFTComplex));
tab2 = av_malloc_array(fft_size, sizeof(FFTSample));
+ if (!(tab && tab1 && tab_ref && tab2))
+ goto cleanup;
+
switch (transform) {
#if CONFIG_MDCT
case TRANSFORM_MDCT:
@@ -310,7 +316,8 @@ int main(int argc, char **argv)
else
av_log(NULL, AV_LOG_INFO,"FFT");
ff_fft_init(&s, fft_nbits, do_inverse);
- fft_ref_init(fft_nbits, do_inverse);
+ if (err = fft_ref_init(fft_nbits, do_inverse) < 0)
+ goto cleanup;
break;
#if FFT_FLOAT
# if CONFIG_RDFT
@@ -320,7 +327,8 @@ int main(int argc, char **argv)
else
av_log(NULL, AV_LOG_INFO,"DFT_R2C");
ff_rdft_init(&r, fft_nbits, do_inverse ? IDFT_C2R : DFT_R2C);
- fft_ref_init(fft_nbits, do_inverse);
+ if (err = fft_ref_init(fft_nbits, do_inverse) < 0)
+ goto cleanup;
break;
# endif /* CONFIG_RDFT */
# if CONFIG_DCT
@@ -335,7 +343,7 @@ int main(int argc, char **argv)
#endif /* FFT_FLOAT */
default:
av_log(NULL, AV_LOG_ERROR, "Requested transform not supported\n");
- return 1;
+ goto cleanup;
}
av_log(NULL, AV_LOG_INFO," %d test\n", fft_size);
@@ -494,6 +502,7 @@ int main(int argc, char **argv)
#endif /* FFT_FLOAT */
}
+cleanup:
av_free(tab);
av_free(tab1);
av_free(tab2);
OpenPOWER on IntegriCloud