Commit 1db9db8d authored by Gildas Bazin's avatar Gildas Bazin

* modules/audio_output/alsa.c: fixed minor memory leak.

parent 0d26b166
...@@ -315,7 +315,6 @@ static int Open( vlc_object_t *p_this ) ...@@ -315,7 +315,6 @@ static int Open( vlc_object_t *p_this )
} }
p_sys->b_playing = VLC_FALSE; p_sys->b_playing = VLC_FALSE;
p_sys->start_date = 0; p_sys->start_date = 0;
p_sys->p_status = (snd_pcm_status_t *)malloc(snd_pcm_status_sizeof());
vlc_cond_init( p_aout, &p_sys->wait ); vlc_cond_init( p_aout, &p_sys->wait );
vlc_mutex_init( p_aout, &p_sys->lock ); vlc_mutex_init( p_aout, &p_sys->lock );
...@@ -327,6 +326,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -327,6 +326,8 @@ static int Open( vlc_object_t *p_this )
return VLC_EGENERIC; return VLC_EGENERIC;
} }
p_sys->p_status = (snd_pcm_status_t *)malloc(snd_pcm_status_sizeof());
/* Choose the IEC device for S/PDIF output: /* Choose the IEC device for S/PDIF output:
if the device is overriden by the user then it will be the one if the device is overriden by the user then it will be the one
otherwise we compute the default device based on the output format. */ otherwise we compute the default device based on the output format. */
...@@ -375,6 +376,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -375,6 +376,7 @@ static int Open( vlc_object_t *p_this )
if ( var_Get( p_aout, "audio-device", &val ) < 0 ) if ( var_Get( p_aout, "audio-device", &val ) < 0 )
{ {
free( p_sys->p_status );
free( p_sys ); free( p_sys );
free( psz_device ); free( psz_device );
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -411,6 +413,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -411,6 +413,7 @@ static int Open( vlc_object_t *p_this )
{ {
/* This should not happen ! */ /* This should not happen ! */
msg_Err( p_aout, "internal: can't find audio-device (%i)", val.i_int ); msg_Err( p_aout, "internal: can't find audio-device (%i)", val.i_int );
free( p_sys->p_status );
free( p_sys ); free( p_sys );
free( psz_device ); free( psz_device );
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -428,6 +431,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -428,6 +431,7 @@ static int Open( vlc_object_t *p_this )
{ {
msg_Err( p_aout, "cannot open ALSA device `%s' (%s)", msg_Err( p_aout, "cannot open ALSA device `%s' (%s)",
psz_iec_device, snd_strerror( i_snd_rc ) ); psz_iec_device, snd_strerror( i_snd_rc ) );
free( p_sys->p_status );
free( p_sys ); free( p_sys );
free( psz_device ); free( psz_device );
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -470,6 +474,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -470,6 +474,7 @@ static int Open( vlc_object_t *p_this )
{ {
msg_Err( p_aout, "cannot open ALSA device `%s' (%s)", msg_Err( p_aout, "cannot open ALSA device `%s' (%s)",
psz_device, snd_strerror( i_snd_rc ) ); psz_device, snd_strerror( i_snd_rc ) );
free( p_sys->p_status );
free( p_sys ); free( p_sys );
free( psz_device ); free( psz_device );
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -673,6 +678,7 @@ error: ...@@ -673,6 +678,7 @@ error:
#ifdef ALSA_DEBUG #ifdef ALSA_DEBUG
snd_output_close( p_sys->p_snd_stderr ); snd_output_close( p_sys->p_snd_stderr );
#endif #endif
free( p_sys->p_status );
free( p_sys ); free( p_sys );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment