Skip to content

Commit 5dc8224

Browse files
committed
f_decoder_wrapper: fix decoder name/desc allocation parent
Those strings has to be owned by mp_codec_params, not decoder wrapper priv. Our assumption is that we set those strings here once on decoder init and they will not be changes during the life time of the mp_codec_params, hence why we need to make sure they are not deallocated too soon, in case they happen to be in use. Fixes, use after free in some cases, when tracks are deselected.
1 parent 88ac54b commit 5dc8224

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

filters/f_decoder_wrapper.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,8 @@ static bool reinit_decoder(struct priv *p)
455455

456456
p->decoder = driver->create(p->decf, p->codec, sel->decoder);
457457
if (p->decoder) {
458-
p->codec->decoder = talloc_strdup(p, sel->decoder);
459-
p->codec->decoder_desc = talloc_strdup(p, sel->desc && sel->desc[0] ? sel->desc : NULL);
458+
p->codec->decoder = talloc_strdup(p->codec, sel->decoder);
459+
p->codec->decoder_desc = talloc_strdup(p->codec, sel->desc && sel->desc[0] ? sel->desc : NULL);
460460
MP_VERBOSE(p, "Selected decoder: %s", sel->decoder);
461461
if (p->codec->decoder_desc)
462462
MP_VERBOSE(p, " - %s", p->codec->decoder_desc);

0 commit comments

Comments
 (0)