[PATCH] fixed #1876
authorjeanlf <jeanlf@gpac.io>
Mon, 30 Aug 2021 12:27:49 +0000 (14:27 +0200)
committerMoritz Mühlenhoff <jmm@debian.org>
Mon, 19 Jun 2023 21:46:06 +0000 (22:46 +0100)
Gbp-Pq: Name CVE-2021-40592.patch

src/filters/isoffin_read.c
src/filters/isoffin_read_ch.c

index 2c216b8a20d797c654df479d0c87288de49ac18b..19b4ab9f8dcf80b5340af111e085578e1336a5ce 100644 (file)
@@ -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;
index 59866ad3e1a7a7f3e0632535fd6e67106ecd7812..b5e0df314dadf96f5b5997544a17eceb22a289b8 100644 (file)
@@ -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;
                                }