Use av_realloc() rather than av_malloc() when normalizing noncompliant
private data in get_qt_codec(). Based on your comments, Michael, it
seems to be OK, and is more "elegant" in my book than using
av_malloc()/memcpy()/av_free().
Mats
--
Mats Peterson
http://matsp888.no-ip.org/~mats/
>From a9b658da530836eb46eb0b16b5b234316104fe25 Mon Sep 17 00:00:00 2001
From: Mats Peterson <matsp...@yahoo.com>
Date: Mon, 11 Jan 2016 07:37:20 +0100
Subject: [PATCH] lavf/matroskadec: Use av_realloc() in get_qt_codec()
Use av_realloc() rather than av_malloc() when normalizing noncompliant
private data in get_qt_codec().
---
libavformat/matroskadec.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 9e9e074..cc5ec19 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1719,11 +1719,11 @@ static int get_qt_codec(MatroskaTrack *track, uint32_t *fourcc, enum AVCodecID *
* by expanding/shifting the data by 4 bytes and storing the data
* size at the start. */
if (ff_codec_get_id(codec_tags, AV_RL32(track->codec_priv.data))) {
- uint8_t *p = av_malloc(track->codec_priv.size + 4);
+ uint8_t *p = av_realloc(track->codec_priv.data,
+ track->codec_priv.size + 4);
if (!p)
return AVERROR(ENOMEM);
- memcpy(p + 4, track->codec_priv.data, track->codec_priv.size);
- av_free(track->codec_priv.data);
+ memmove(p + 4, p, track->codec_priv.size);
track->codec_priv.data = p;
track->codec_priv.size += 4;
AV_WB32(track->codec_priv.data, track->codec_priv.size);
--
1.7.10.4
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel