From: jeanlf Date: Mon, 30 Aug 2021 12:27:49 +0000 (+0200) Subject: [PATCH] fixed #1876 X-Git-Tag: archive/raspbian/1.0.1+dfsg1-4+rpi1+deb11u3^2~74 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=835c46d3f0496685dc316c9d242bf530b7561d23;p=gpac.git [PATCH] fixed #1876 Gbp-Pq: Name CVE-2021-40592.patch --- 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; }