vlc | branch: master | Edward Wang <[email protected]> | Sat May 26 
19:04:57 2012 -0400| [73e246278f8ef609ab9ac07272343c3faba8d644] | committer: 
Jean-Baptiste Kempf

visual: check for NULL before free

Close #6879

Signed-off-by: Jean-Baptiste Kempf <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=73e246278f8ef609ab9ac07272343c3faba8d644
---

 modules/visualization/visual/visual.c |   27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/modules/visualization/visual/visual.c 
b/modules/visualization/visual/visual.c
index 964924c..a91faa7 100644
--- a/modules/visualization/visual/visual.c
+++ b/modules/visualization/visual/visual.c
@@ -373,20 +373,23 @@ static void Close( vlc_object_t *p_this )
     for( int i = 0; i < p_sys->i_effect; i++ )
     {
 #define p_effect p_sys->effect[i]
-        if( !strncmp( p_effect->psz_name, "spectrum", strlen( "spectrum" ) ) )
+        if( p_effect->p_data != NULL )
         {
-            spectrum_data *p_data = p_effect->p_data;
-            free( p_data->peaks );
-            free( p_data->prev_heights );
-            free( p_data->p_prev_s16_buff );
-        }
-        if( !strncmp( p_effect->psz_name, "spectrometer", strlen( 
"spectrometer" ) ) )
-        {
-            spectrometer_data *p_data = p_effect->p_data;
-            free( p_data->peaks );
-            free( p_data->p_prev_s16_buff );
+            if( !strncmp( p_effect->psz_name, "spectrum", strlen( "spectrum" ) 
) )
+            {
+                spectrum_data* p_data = p_effect->p_data;
+                free( p_data->peaks );
+                free( p_data->prev_heights );
+                free( p_data->p_prev_s16_buff );
+            }
+            if( !strncmp( p_effect->psz_name, "spectrometer", strlen( 
"spectrometer" ) ) )
+            {
+                spectrometer_data* p_data = p_effect->p_data;
+                free( p_data->peaks );
+                free( p_data->p_prev_s16_buff );
+            }
+            free( p_effect->p_data );
         }
-        free( p_effect->p_data );
         free( p_effect->psz_args );
         free( p_effect );
 #undef p_effect

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to