Merge commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 23 Jul 2014 22:35:40 +0000 (00:35 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 23 Jul 2014 22:35:40 +0000 (00:35 +0200)
* commit 'c3c96deb5f8cbbdb700ba97920ceedddacb5dcb9':
  fft-test: Check memory allocations

Conflicts:
libavcodec/fft-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/fft-test.c

@@@ -71,7 -67,9 +71,9 @@@ static int fft_ref_init(int nbits, int 
  {
      int i, n = 1 << nbits;
  
 -    exptab = av_malloc((n / 2) * sizeof(*exptab));
 +    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;
@@@ -288,11 -285,14 +291,14 @@@ int main(int argc, char **argv
      }
  
      fft_size = 1 << fft_nbits;
 -    tab = av_malloc(fft_size * sizeof(FFTComplex));
 -    tab1 = av_malloc(fft_size * sizeof(FFTComplex));
 -    tab_ref = av_malloc(fft_size * sizeof(FFTComplex));
 -    tab2 = av_malloc(fft_size * sizeof(FFTSample));
 +    tab = av_malloc_array(fft_size, sizeof(FFTComplex));
 +    tab1 = av_malloc_array(fft_size, sizeof(FFTComplex));
 +    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:
          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
 +#    if CONFIG_RDFT
      case TRANSFORM_RDFT:
          if (do_inverse)
              av_log(NULL, AV_LOG_INFO,"IDFT_C2R");
          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
 +#    endif /* CONFIG_RDFT */
 +#    if CONFIG_DCT
      case TRANSFORM_DCT:
          if (do_inverse)
              av_log(NULL, AV_LOG_INFO,"DCT_III");