[FFmpeg-cvslog] rtmpproto: Clear the flv allocation size on reallocp failures

Martin Storsjö git at videolan.org
Fri Oct 4 14:18:08 CEST 2013


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Thu Oct  3 12:27:10 2013 +0200| [72540e514ceaaed8ecb97ed63637b2a2a4447ab8] | committer: Martin Storsjö

rtmpproto: Clear the flv allocation size on reallocp failures

This was overlooked in d872fb0f7 since I assumed all the realloc
issues in the rtmp code was fixed already.

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=72540e514ceaaed8ecb97ed63637b2a2a4447ab8
---

 libavformat/rtmpproto.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 02fbcc4..21d7ad8 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -2098,8 +2098,10 @@ static int append_flv_data(RTMPContext *rt, RTMPPacket *pkt, int skip)
 
     old_flv_size = update_offset(rt, size);
 
-    if ((ret = av_reallocp(&rt->flv_data, rt->flv_size)) < 0)
+    if ((ret = av_reallocp(&rt->flv_data, rt->flv_size)) < 0) {
+        rt->flv_size = rt->flv_off = 0;
         return ret;
+    }
     bytestream2_init_writer(&pbc, rt->flv_data, rt->flv_size);
     bytestream2_skip_p(&pbc, old_flv_size);
     bytestream2_put_byte(&pbc, pkt->type);
@@ -2199,8 +2201,10 @@ static int handle_metadata(RTMPContext *rt, RTMPPacket *pkt)
 
     old_flv_size = update_offset(rt, pkt->size);
 
-    if ((ret = av_reallocp(&rt->flv_data, rt->flv_size)) < 0)
+    if ((ret = av_reallocp(&rt->flv_data, rt->flv_size)) < 0) {
+        rt->flv_size = rt->flv_off = 0;
         return ret;
+    }
 
     next = pkt->data;
     p    = rt->flv_data + old_flv_size;



More information about the ffmpeg-cvslog mailing list