avformat/oggdec/ogg_read_packet(): factorize failure code path
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 6 Apr 2014 15:09:32 +0000 (17:09 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 6 Apr 2014 16:10:47 +0000 (18:10 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/oggdec.c

index b969537..2a2be2a 100644 (file)
@@ -793,11 +793,8 @@ retry:
         uint8_t *side_data = av_packet_new_side_data(pkt,
                                                      AV_PKT_DATA_SKIP_SAMPLES,
                                                      10);
-        if(side_data == NULL) {
-            av_free_packet(pkt);
-            av_free(pkt);
-            return AVERROR(ENOMEM);
-        }
+        if(side_data == NULL)
+            goto fail;
         AV_WL32(side_data + 4, os->end_trimming);
         os->end_trimming = 0;
     }
@@ -806,17 +803,19 @@ retry:
         uint8_t *side_data = av_packet_new_side_data(pkt,
                                                      AV_PKT_DATA_METADATA_UPDATE,
                                                      os->new_metadata_size);
-        if(side_data == NULL) {
-            av_free_packet(pkt);
-            av_free(pkt);
-            return AVERROR(ENOMEM);
-        }
+        if(side_data == NULL)
+            goto fail;
+
         memcpy(side_data, os->new_metadata, os->new_metadata_size);
         av_freep(&os->new_metadata);
         os->new_metadata_size = 0;
     }
 
     return psize;
+fail:
+    av_free_packet(pkt);
+    av_free(pkt);
+    return AVERROR(ENOMEM);
 }
 
 static int64_t ogg_read_timestamp(AVFormatContext *s, int stream_index,