mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-23 11:39:49 +00:00
avformat/utils: Check allocations for failure
There would be leaks in case of failure. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> (cherry picked from commit 543e4a194252050cf1abcded7c75e4b889e3db4f)
This commit is contained in:
parent
ffb599458f
commit
70028ce7fd
@ -4603,7 +4603,7 @@ fail:
|
||||
AVProgram *av_new_program(AVFormatContext *ac, int id)
|
||||
{
|
||||
AVProgram *program = NULL;
|
||||
int i;
|
||||
int i, ret;
|
||||
|
||||
av_log(ac, AV_LOG_TRACE, "new_program: id=0x%04x\n", id);
|
||||
|
||||
@ -4615,7 +4615,11 @@ AVProgram *av_new_program(AVFormatContext *ac, int id)
|
||||
program = av_mallocz(sizeof(AVProgram));
|
||||
if (!program)
|
||||
return NULL;
|
||||
dynarray_add(&ac->programs, &ac->nb_programs, program);
|
||||
ret = av_dynarray_add_nofree(&ac->programs, &ac->nb_programs, program);
|
||||
if (ret < 0) {
|
||||
av_free(program);
|
||||
return NULL;
|
||||
}
|
||||
program->discard = AVDISCARD_NONE;
|
||||
program->pmt_version = -1;
|
||||
program->id = id;
|
||||
@ -4635,7 +4639,7 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int64_t id, AVRational time_ba
|
||||
int64_t start, int64_t end, const char *title)
|
||||
{
|
||||
AVChapter *chapter = NULL;
|
||||
int i;
|
||||
int i, ret;
|
||||
|
||||
if (end != AV_NOPTS_VALUE && start > end) {
|
||||
av_log(s, AV_LOG_ERROR, "Chapter end time %"PRId64" before start %"PRId64"\n", end, start);
|
||||
@ -4655,7 +4659,11 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int64_t id, AVRational time_ba
|
||||
chapter = av_mallocz(sizeof(AVChapter));
|
||||
if (!chapter)
|
||||
return NULL;
|
||||
dynarray_add(&s->chapters, &s->nb_chapters, chapter);
|
||||
ret = av_dynarray_add_nofree(&s->chapters, &s->nb_chapters, chapter);
|
||||
if (ret < 0) {
|
||||
av_free(chapter);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
av_dict_set(&chapter->metadata, "title", title, 0);
|
||||
chapter->id = id;
|
||||
|
Loading…
Reference in New Issue
Block a user