lavf: Allocate arrays with av_realloc if they will be realloced later
authorMartin Storsjö <martin@martin.st>
Thu, 26 Sep 2013 13:34:04 +0000 (16:34 +0300)
committerMartin Storsjö <martin@martin.st>
Thu, 26 Sep 2013 20:13:53 +0000 (23:13 +0300)
Pointers returned from av_malloc can't in general be passed
to av_realloc.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/concat.c
libavformat/rtpdec_qt.c

index 4682d8a..416bbf5 100644 (file)
@@ -74,7 +74,7 @@ static av_cold int concat_open(URLContext *h, const char *uri, int flags)
                 return AVERROR(ENAMETOOLONG);
             }
 
                 return AVERROR(ENAMETOOLONG);
             }
 
-    if (!(nodes = av_malloc(sizeof(*nodes) * len))) {
+    if (!(nodes = av_realloc(NULL, sizeof(*nodes) * len))) {
         return AVERROR(ENOMEM);
     } else
         data->nodes = nodes;
         return AVERROR(ENOMEM);
     } else
         data->nodes = nodes;
index 8898f05..bb0a73b 100644 (file)
@@ -179,7 +179,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
         } else {
             av_freep(&qt->pkt.data);
             av_init_packet(&qt->pkt);
         } else {
             av_freep(&qt->pkt.data);
             av_init_packet(&qt->pkt);
-            qt->pkt.data = av_malloc(alen + FF_INPUT_BUFFER_PADDING_SIZE);
+            qt->pkt.data = av_realloc(NULL, alen + FF_INPUT_BUFFER_PADDING_SIZE);
             if (!qt->pkt.data)
                 return AVERROR(ENOMEM);
             qt->pkt.size = 0;
             if (!qt->pkt.data)
                 return AVERROR(ENOMEM);
             qt->pkt.size = 0;
@@ -213,7 +213,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
         pkt->stream_index = st->index;
         if (qt->remaining > 0) {
             av_freep(&qt->pkt.data);
         pkt->stream_index = st->index;
         if (qt->remaining > 0) {
             av_freep(&qt->pkt.data);
-            qt->pkt.data = av_malloc(qt->remaining * qt->bytes_per_frame);
+            qt->pkt.data = av_realloc(NULL, qt->remaining * qt->bytes_per_frame);
             if (!qt->pkt.data) {
                 av_free_packet(pkt);
                 return AVERROR(ENOMEM);
             if (!qt->pkt.data) {
                 av_free_packet(pkt);
                 return AVERROR(ENOMEM);