Fixed error handling in function
authorMiguel Angel Cabrera Moya <madmac2501@gmail.com>
Thu, 8 May 2008 20:43:00 +0000 (22:43 +0200)
committerJean-Paul Saman <jpsaman@videolan.org>
Sat, 10 May 2008 17:20:51 +0000 (19:20 +0200)
Signed-off-by: Jean-Paul Saman <jpsaman@videolan.org>
modules/access/rtmp/rtmp_amf_flv.c

index 443db66..7faa958 100644 (file)
@@ -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 */