summaryrefslogtreecommitdiff
path: root/libavformat/oggdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-04-06 17:09:32 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-04-06 18:10:47 +0200
commit4ccd7cb45b9aa46d94c29dbd1c065b652bda2319 (patch)
tree2557767128d96ee449121d3cab10853cb657ff74 /libavformat/oggdec.c
parentc1b24ca762cba20236190cd7b24e84a9ad788bcb (diff)
avformat/oggdec/ogg_read_packet(): factorize failure code path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/oggdec.c')
-rw-r--r--libavformat/oggdec.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
index b969537fb0..2a2be2a509 100644
--- a/libavformat/oggdec.c
+++ b/libavformat/oggdec.c
@@ -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,