f_output_chain: prevent double free of child filters

When mp_output_chain_update_filters() fails, talloc_free() is called on
each mp_user_filter. But because the structure doesn't have a talloc
destructor, the args aren't freed, resulting in stale references.

Fix this by calling the destructor of the wrapped filter instead.
This commit is contained in:
nanahi 2024-02-07 16:07:57 -05:00 committed by sfan5
parent fd2c5ee21d
commit aa100d1512
1 changed files with 1 additions and 1 deletions

View File

@ -627,7 +627,7 @@ bool mp_output_chain_update_filters(struct mp_output_chain *c,
error:
for (int n = 0; n < num_add; n++)
talloc_free(add[n]);
talloc_free(add[n]->wrapper);
talloc_free(add);
talloc_free(used);
return false;