]> git.sesse.net Git - vlc/commitdiff
alsa: fix a memory leak.
authorRémi Duraffort <ivoire@videolan.org>
Sat, 26 Jun 2010 10:11:08 +0000 (12:11 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Sat, 26 Jun 2010 10:11:08 +0000 (12:11 +0200)
The thread can be canceled when owning a block_t, so we must push a way to clean it up.

modules/audio_output/alsa.c

index ffb1c80e77b9321a2b0a733eed68320cfa41e388..b5168d2f1f2eea0baa0f49dc7865e6db7eb3954e 100644 (file)
@@ -867,6 +867,7 @@ static void ALSAFill( aout_instance_t * p_aout )
     if( p_buffer == NULL )
         goto error;
 
+    block_cleanup_push( p_buffer );
     for (;;)
     {
         int n = snd_pcm_poll_descriptors_count(p_pcm);
@@ -912,7 +913,7 @@ static void ALSAFill( aout_instance_t * p_aout )
         msg_Err( p_aout, "cannot write: %s", snd_strerror( i_snd_rc ) );
 
     vlc_restorecancel(canc);
-    block_Release( p_buffer );
+    vlc_cleanup_run();
     return;
 
 error: