diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-07-24 00:35:40 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-07-24 00:35:40 +0200 |
commit | 074bb7515e33780be35dd62e881cacd485cea382 (patch) | |
tree | c22c6eb19b13d85ca2617656bf9ba7d5b0416735 | |
parent | 670b7f203ad24bccfe9effe81769b41f769052a6 (diff) | |
parent | c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9 (diff) | |
download | ffmpeg-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>
-rw-r--r-- | libavcodec/fft-test.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/libavcodec/fft-test.c b/libavcodec/fft-test.c index 7e87befaaf..aafcef0fc3 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); |