From c6e1966c1a1a8987de0834462d7a76377eaa76bc Mon Sep 17 00:00:00 2001 From: Fan Gang Date: Tue, 13 Feb 2018 15:38:59 +0800 Subject: [PATCH] avcodec/ass_split: fix a memory leak defect when realloc fails Fixes #7019. --- libavcodec/ass_split.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/ass_split.c b/libavcodec/ass_split.c index 872528bdfa..67da7c6d84 100644 --- a/libavcodec/ass_split.c +++ b/libavcodec/ass_split.c @@ -249,7 +249,7 @@ static const char *ass_split_section(ASSSplitContext *ctx, const char *buf) const ASSSection *section = &ass_sections[ctx->current_section]; int *number = &ctx->field_number[ctx->current_section]; int *order = ctx->field_order[ctx->current_section]; - int *tmp, i, len; + int i, len; while (buf && *buf) { if (buf[0] == '[') { @@ -280,9 +280,9 @@ static const char *ass_split_section(ASSSplitContext *ctx, const char *buf) while (!is_eol(*buf)) { buf = skip_space(buf); len = strcspn(buf, ", \r\n"); - if (!(tmp = av_realloc_array(order, (*number + 1), sizeof(*order)))) + if (av_reallocp_array(&order, (*number + 1), sizeof(*order)) != 0) return NULL; - order = tmp; + order[*number] = -1; for (i=0; section->fields[i].name; i++) if (!strncmp(buf, section->fields[i].name, len)) {