From 6c4493a71679f3995b81c828511a65896b6af88d Mon Sep 17 00:00:00 2001 From: Tristan Matthews Date: Tue, 8 Apr 2014 14:19:58 -0400 Subject: [PATCH] visual: don't crash on empty buffers Fixes #10533 --- modules/visualization/glspectrum.c | 5 +++++ modules/visualization/visual/effects.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/modules/visualization/glspectrum.c b/modules/visualization/glspectrum.c index d3b40cc8a8..023b0c7704 100644 --- a/modules/visualization/glspectrum.c +++ b/modules/visualization/glspectrum.c @@ -447,6 +447,11 @@ static void *Thread( void *p_data ) int16_t *p_buffs; /* int16_t converted buffer */ int16_t *p_s16_buff; /* int16_t converted buffer */ + if (!block->i_nb_samples) { + msg_Err(p_filter, "no samples yet"); + goto release; + } + /* Allocate the buffer only if the number of samples change */ if (block->i_nb_samples != p_sys->i_prev_nb_samples) { diff --git a/modules/visualization/visual/effects.c b/modules/visualization/visual/effects.c index ca2e1bd7c9..c043cb07a5 100644 --- a/modules/visualization/visual/effects.c +++ b/modules/visualization/visual/effects.c @@ -119,6 +119,11 @@ static int spectrum_Run(visual_effect_t * p_effect, vlc_object_t *p_aout, int16_t *p_buffs; /* int16_t converted buffer */ int16_t *p_s16_buff; /* int16_t converted buffer */ + if (!p_buffer->i_nb_samples) { + msg_Err(p_aout, "no samples yet"); + return -1; + } + /* Create p_data if needed */ if( !p_data ) { @@ -451,6 +456,11 @@ static int spectrometer_Run(visual_effect_t * p_effect, vlc_object_t *p_aout, int16_t *p_buffs; /* int16_t converted buffer */ int16_t *p_s16_buff; /* int16_t converted buffer */ + if (!p_buffer->i_nb_samples) { + msg_Err(p_aout, "no samples yet"); + return -1; + } + /* Create the data struct if needed */ spectrometer_data *p_data = p_effect->p_data; if( !p_data ) -- 2.39.2