ffplay: Switch to show waves mode if allocation/init of RDFT fails
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 2 Mar 2015 13:19:41 +0000 (14:19 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 4 Mar 2015 02:04:04 +0000 (03:04 +0100)
Fixes null pointer dereference

Found-by: PaweĊ‚ <pantrombka@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffplay.c

index 8140dd9..94c7ed4 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -1247,7 +1247,10 @@ static void video_audio_display(VideoState *s)
             s->rdft_bits = rdft_bits;
             s->rdft_data = av_malloc_array(nb_freq, 4 *sizeof(*s->rdft_data));
         }
-        {
+        if (!s->rdft || !s->rdft_data){
+            av_log(NULL, AV_LOG_ERROR, "Failed to allocate buffers for RDFT, switching to waves display\n");
+            s->show_mode = SHOW_MODE_WAVES;
+        } else {
             FFTSample *data[2];
             for (ch = 0; ch < nb_display_channels; ch++) {
                 data[ch] = s->rdft_data + 2 * nb_freq * ch;