aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/matroskaenc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-09-11 10:54:41 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-09-11 11:23:40 +0200
commitcbe47b1e8452e37fda592941e7d3f3bb5920c201 (patch)
tree9ea8b6418c4d89e27c98314d41974163b5dbafe8 /libavformat/matroskaenc.c
parent64b6279d1414378214a58a55f0066fbc95256c9b (diff)
parentf369b9356c4606cd4d713d60f7db5de119d901fa (diff)
downloadffmpeg-cbe47b1e8452e37fda592941e7d3f3bb5920c201.tar.gz
Merge commit 'f369b9356c4606cd4d713d60f7db5de119d901fa'
* commit 'f369b9356c4606cd4d713d60f7db5de119d901fa': avformat: Use av_reallocp_array() where suitable Conflicts: libavformat/asfenc.c libavformat/gxfenc.c libavformat/mov.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/matroskaenc.c')
-rw-r--r--libavformat/matroskaenc.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 13523f800f..c6541b2da1 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -302,14 +302,17 @@ static mkv_seekhead * mkv_start_seekhead(AVIOContext *pb, int64_t segment_offset
static int mkv_add_seekhead_entry(mkv_seekhead *seekhead, unsigned int elementid, uint64_t filepos)
{
mkv_seekhead_entry *entries = seekhead->entries;
+ int err;
// don't store more elements than we reserved space for
if (seekhead->max_entries > 0 && seekhead->max_entries <= seekhead->num_entries)
return -1;
- entries = av_realloc(entries, (seekhead->num_entries + 1) * sizeof(mkv_seekhead_entry));
- if (entries == NULL)
- return AVERROR(ENOMEM);
+ if ((err = av_reallocp_array(&entries, seekhead->num_entries + 1,
+ sizeof(*entries))) < 0) {
+ seekhead->num_entries = 0;
+ return err;
+ }
entries[seekhead->num_entries ].elementid = elementid;
entries[seekhead->num_entries++].segmentpos = filepos - seekhead->segment_offset;
@@ -384,13 +387,16 @@ static mkv_cues * mkv_start_cues(int64_t segment_offset)
static int mkv_add_cuepoint(mkv_cues *cues, int stream, int64_t ts, int64_t cluster_pos, int64_t relative_pos)
{
mkv_cuepoint *entries = cues->entries;
+ int err;
if (ts < 0)
return 0;
- entries = av_realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint));
- if (entries == NULL)
- return AVERROR(ENOMEM);
+ if ((err = av_reallocp_array(&entries, cues->num_entries + 1,
+ sizeof(*entries))) < 0) {
+ cues->num_entries = 0;
+ return err;
+ }
entries[cues->num_entries ].pts = ts;
entries[cues->num_entries ].tracknum = stream + 1;