diff --git a/src/filters/reframe_adts.c b/src/filters/reframe_adts.c index 80c98e522e..818273e58e 100644 --- a/src/filters/reframe_adts.c +++ b/src/filters/reframe_adts.c @@ -300,7 +300,7 @@ static void adts_dmx_check_dur(GF_Filter *filter, GF_ADTSDmxCtx *ctx) } } } - + p = gf_filter_pid_get_property(ctx->ipid, GF_PROP_PID_FILE_CACHED); if (p && p->value.boolean) ctx->file_loaded = GF_TRUE; } @@ -824,6 +824,12 @@ GF_Err adts_dmx_process(GF_Filter *filter) } if (!ctx->in_seek) { + + if (sync_pos + offset + size > remain) { + GF_LOG(GF_LOG_WARNING, GF_LOG_MEDIA, ("[ADTSDmx] truncated frame\n")); + break; + } + dst_pck = gf_filter_pck_new_alloc(ctx->opid, size, &output); if (!dst_pck) return GF_OUT_OF_MEM; if (ctx->src_pck) gf_filter_pck_merge_properties(ctx->src_pck, dst_pck);