From: Miguel Angel Cabrera Moya Date: Thu, 8 May 2008 20:43:00 +0000 (+0200) Subject: Fixed error handling in function X-Git-Tag: 0.9.0-test0~991 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=9f427214afc526023b6841c527811add76b0bdd3;p=vlc Fixed error handling in function Signed-off-by: Jean-Paul Saman --- diff --git a/modules/access/rtmp/rtmp_amf_flv.c b/modules/access/rtmp/rtmp_amf_flv.c index 443db6604a..7faa95858c 100644 --- a/modules/access/rtmp/rtmp_amf_flv.c +++ b/modules/access/rtmp/rtmp_amf_flv.c @@ -228,7 +228,7 @@ const uint8_t FLV_VIDEO_FRAME_TYPE_DISPOSABLE_INTER_FRAME = 0x30; ******************************************************************************/ static void rtmp_handler_null ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); static void rtmp_handler_chunk_size ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); -static int rtmp_handler_invoke ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); +static void rtmp_handler_invoke ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); static void rtmp_handler_audio_data ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); static void rtmp_handler_video_data ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); static void rtmp_handler_notify ( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ); @@ -1118,7 +1118,7 @@ rtmp_handler_notify( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet free( rtmp_packet ); } -static int +static void rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet ) { rtmp_packet_t *tmp_rtmp_packet; @@ -1148,12 +1148,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send connection bandwith" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1168,12 +1164,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send server bandwith" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1188,12 +1180,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send clear stream" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1208,12 +1196,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send reply NetConnection.connect" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1233,12 +1217,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send reply createStream" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1253,12 +1233,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send reset stream" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1273,12 +1249,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send clear stream" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1315,12 +1287,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send reply NetStream.play.reset" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1335,12 +1303,8 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet i_ret = net_Write( p_thread, p_thread->fd, NULL, tmp_buffer, tmp_rtmp_packet->length_encoded ); if( i_ret != tmp_rtmp_packet->length_encoded ) { - free( tmp_rtmp_packet->body->body ); - free( tmp_rtmp_packet->body ); - free( tmp_rtmp_packet ); - free( tmp_buffer ); msg_Err( p_thread, "failed send reply NetStream.play.start" ); - return VLC_EGENERIC; + goto error; } free( tmp_rtmp_packet->body->body ); free( tmp_rtmp_packet->body ); @@ -1472,7 +1436,14 @@ rtmp_handler_invoke( rtmp_control_thread_t *p_thread, rtmp_packet_t *rtmp_packet free( rtmp_packet->body->body ); free( rtmp_packet->body ); free( rtmp_packet ); - return VLC_SUCCESS; + + return; + +error: + free( tmp_rtmp_packet->body->body ); + free( tmp_rtmp_packet->body ); + free( tmp_rtmp_packet ); + free( tmp_buffer ); } /* length header calculated automatically based on last packet in the same channel */