---
libavformat/avidec.c | 7 +++++--
libavformat/mov.c | 17 ++++++++---------
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index cf24e8c..dcf8542 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -614,9 +614,12 @@ static int avi_read_header(AVFormatContext *s)
if(st->codec->codec_tag==0 && st->codec->height > 0 &&
st->codec->extradata_size < 1U<<30){
st->codec->extradata_size+= 9;
- st->codec->extradata= av_realloc(st->codec->extradata,
st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- if(st->codec->extradata)
+ av_freep(&st->codec->extradata);
+ st->codec->extradata =
av_malloc(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
+ if (st->codec->extradata)
memcpy(st->codec->extradata +
st->codec->extradata_size - 9, "BottomUp", 9);
+ else
+ st->codec->extradata_size = 0;
}
st->codec->height= FFABS(st->codec->height);
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 7e19883..0cf1ab9 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -877,7 +877,6 @@ static int mov_read_extradata(MOVContext *c, AVIOContext
*pb, MOVAtom atom)
{
AVStream *st;
uint64_t size;
- uint8_t *buf;
if (c->fc->nb_streams < 1) // will happen with jp2 files
return 0;
@@ -885,15 +884,15 @@ static int mov_read_extradata(MOVContext *c, AVIOContext
*pb, MOVAtom atom)
size= (uint64_t)st->codec->extradata_size + atom.size + 8 +
FF_INPUT_BUFFER_PADDING_SIZE;
if (size > INT_MAX || (uint64_t)atom.size > INT_MAX)
return AVERROR_INVALIDDATA;
- buf= av_realloc(st->codec->extradata, size);
- if (!buf)
+ av_freep(&st->codec->extradata);
+ st->codec->extradata = av_malloc(size);
+ if (!st->codec->extradata)
return AVERROR(ENOMEM);
- st->codec->extradata= buf;
- buf+= st->codec->extradata_size;
- st->codec->extradata_size= size - FF_INPUT_BUFFER_PADDING_SIZE;
- AV_WB32( buf , atom.size + 8);
- AV_WL32( buf + 4, atom.type);
- avio_read(pb, buf + 8, atom.size);
+ st->codec->extradata += st->codec->extradata_size;
+ st->codec->extradata_size = size - FF_INPUT_BUFFER_PADDING_SIZE;
+ AV_WB32(st->codec->extradata, atom.size + 8);
+ AV_WL32(st->codec->extradata + 4, atom.type);
+ avio_read(pb, st->codec->extradata + 8, atom.size);
return 0;
}
--
1.7.10.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel