[FFmpeg-cvslog] avformat/nutenc: free all missing dynamic AVIOContext on header writing failure
James Almer
git at videolan.org
Sat Oct 19 20:44:53 EEST 2019
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Oct 19 14:37:27 2019 -0300| [90e37adab7fc88162d44dc68e510c3688d2de2f6] | committer: James Almer
avformat/nutenc: free all missing dynamic AVIOContext on header writing failure
Fixes part of ticket #8316
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90e37adab7fc88162d44dc68e510c3688d2de2f6
---
libavformat/nutenc.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index 4d10e70e9e..d212f0c245 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -637,8 +637,10 @@ static int write_headers(AVFormatContext *avctx, AVIOContext *bc)
if (ret < 0)
return ret;
ret = write_streamheader(avctx, dyn_bc, nut->avf->streams[i], i);
- if (ret < 0)
+ if (ret < 0) {
+ ffio_free_dyn_buf(&dyn_bc);
return ret;
+ }
put_packet(nut, bc, dyn_bc, 1, STREAM_STARTCODE);
}
@@ -653,12 +655,13 @@ static int write_headers(AVFormatContext *avctx, AVIOContext *bc)
if (ret < 0)
return ret;
ret = write_streaminfo(nut, dyn_bc, i);
- if (ret < 0)
- return ret;
if (ret > 0)
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE);
- else
+ else {
ffio_free_dyn_buf(&dyn_bc);
+ if (ret < 0)
+ return ret;
+ }
}
for (i = 0; i < nut->avf->nb_chapters; i++) {
More information about the ffmpeg-cvslog
mailing list