Commit c6e1966c authored by Fan Gang's avatar Fan Gang Committed by Paul B Mahol

avcodec/ass_split: fix a memory leak defect when realloc fails

Fixes #7019.
parent ddefd055
...@@ -249,7 +249,7 @@ static const char *ass_split_section(ASSSplitContext *ctx, const char *buf) ...@@ -249,7 +249,7 @@ static const char *ass_split_section(ASSSplitContext *ctx, const char *buf)
const ASSSection *section = &ass_sections[ctx->current_section]; const ASSSection *section = &ass_sections[ctx->current_section];
int *number = &ctx->field_number[ctx->current_section]; int *number = &ctx->field_number[ctx->current_section];
int *order = ctx->field_order[ctx->current_section]; int *order = ctx->field_order[ctx->current_section];
int *tmp, i, len; int i, len;
while (buf && *buf) { while (buf && *buf) {
if (buf[0] == '[') { if (buf[0] == '[') {
...@@ -280,9 +280,9 @@ static const char *ass_split_section(ASSSplitContext *ctx, const char *buf) ...@@ -280,9 +280,9 @@ static const char *ass_split_section(ASSSplitContext *ctx, const char *buf)
while (!is_eol(*buf)) { while (!is_eol(*buf)) {
buf = skip_space(buf); buf = skip_space(buf);
len = strcspn(buf, ", \r\n"); 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; return NULL;
order = tmp;
order[*number] = -1; order[*number] = -1;
for (i=0; section->fields[i].name; i++) for (i=0; section->fields[i].name; i++)
if (!strncmp(buf, section->fields[i].name, len)) { if (!strncmp(buf, section->fields[i].name, len)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment