[vlc-devel] commit: Fixed error handling in function (Miguel Angel Cabrera Moya )

git version control git at videolan.org
Sat May 10 19:20:57 CEST 2008


vlc | branch: master | Miguel Angel Cabrera Moya <madmac2501 at gmail.com> | Thu May  8 22:43:00 2008 +0200| [9f427214afc526023b6841c527811add76b0bdd3]

Fixed error handling in function

Signed-off-by: Jean-Paul Saman <jpsaman at videolan.org>

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

 modules/access/rtmp/rtmp_amf_flv.c |   67 ++++++++++-------------------------
 1 files changed, 19 insertions(+), 48 deletions(-)

diff --git a/modules/access/rtmp/rtmp_amf_flv.c b/modules/access/rtmp/rtmp_amf_flv.c
index 443db66..7faa958 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 */




More information about the vlc-devel mailing list