From 835c46d3f0496685dc316c9d242bf530b7561d23 Mon Sep 17 00:00:00 2001 From: jeanlf Date: Mon, 30 Aug 2021 14:27:49 +0200 Subject: [PATCH] [PATCH] fixed #1876 Gbp-Pq: Name CVE-2021-40592.patch --- src/filters/isoffin_read.c | 7 +++++++ src/filters/isoffin_read_ch.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/filters/isoffin_read.c b/src/filters/isoffin_read.c index 2c216b8..19b4ab9 100644 --- a/src/filters/isoffin_read.c +++ b/src/filters/isoffin_read.c @@ -1296,6 +1296,13 @@ static GF_Err isoffin_process(GF_Filter *filter) gf_filter_pid_set_eos(ch->pid); } break; + } else if (ch->last_state==GF_ISOM_INVALID_FILE) { + if (!ch->eos_sent) { + ch->eos_sent = GF_TRUE; + read->eos_signaled = GF_TRUE; + gf_filter_pid_set_eos(ch->pid); + } + return ch->last_state; } else { read->force_fetch = GF_TRUE; break; diff --git a/src/filters/isoffin_read_ch.c b/src/filters/isoffin_read_ch.c index 59866ad..b5e0df3 100644 --- a/src/filters/isoffin_read_ch.c +++ b/src/filters/isoffin_read_ch.c @@ -364,6 +364,10 @@ void isor_reader_get_sample(ISOMChannel *ch) if (!ch->has_edit_list && ch->sample_num) ch->sample_num--; } else { + if (ch->to_init && ch->sample_num) { + GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("[IsoMedia] Failed to fetch initial sample %d for track %d\n")); + ch->last_state = GF_ISOM_INVALID_FILE; + } if (ch->sample_num >= gf_isom_get_sample_count(ch->owner->mov, ch->track)) { ch->last_state = GF_EOS; } -- 2.30.2