fftools/ffmpeg_opt: validate stream index in negative map handling
Negative -map processing iterates previously parsed stream map entries and dereferences input_files[m->file_index]->ctx->streams[m->stream_index] without validating that stream_index is in range. A malformed earlier map can leave m->stream_index negative, which causes an out-of-bounds read when a later negative map walks existing entries. Check that stream_index is non-negative and below nb_streams before calling stream_specifier_match(). *Vulnerability reported by Zhenpeng (Leo) Lin at depthfirst* *Patch validated by Zheng Yu at depthfirst* Fixes: DFVULN-695
This commit is contained in:
committed by
michaelni
parent
a45a91b23b
commit
25a98586cc
@@ -645,6 +645,8 @@ static int opt_map(void *optctx, const char *opt, const char *arg)
|
||||
for (i = 0; i < o->nb_stream_maps; i++) {
|
||||
m = &o->stream_maps[i];
|
||||
if (file_idx == m->file_index &&
|
||||
m->stream_index >= 0 &&
|
||||
m->stream_index < input_files[m->file_index]->nb_streams &&
|
||||
stream_specifier_match(&ss,
|
||||
input_files[m->file_index]->ctx,
|
||||
input_files[m->file_index]->ctx->streams[m->stream_index],
|
||||
|
||||
Reference in New Issue
Block a user