[vlc-devel] [PATCH 2/2] sout: description: make the ownership of es_format clear
quinkblack at foxmail.com
Tue Oct 2 08:24:23 CEST 2018
On 10/2/18 2:44 AM, Francois Cartegnie wrote:
> Le 01/10/2018 à 13:11, Zhao Zhili a écrit :
>>> Only the NOTE is incorrect and the Del() must free the opaque, being
>>> here a fmt copy.
>> Del() is called during input_Close(), but those es_format associated with sout-description-data are used after input_Close(). So if there is a single copy and Del() free those es_format, it leads to use-after-free.
>> If you think two copies are not right, any other suggestion?
>> var_Create( p_input, "sout-description-data", VLC_VAR_ADDRESS );
>> var_SetAddress( p_input, "sout-description-data", &data );
>> if( !input_Start( p_input ) )
>> vlc_sem_wait( &sem_preparse );
>> var_DelCallback( p_input, "intf-event", InputEventPreparse,
>> &preparse );
>> input_Stop( p_input );
>> input_Close( p_input );
> Sounds like a hackish module :/
> But if the only purpose of description as sout module is to feed the
> parent variable, then the Add can return NULL, that's unused. No local
> data storage required.
The return value is used by stream_out for sout_StreamIdSend and
control. So I think two copies makes the ownership a little clear.
More information about the vlc-devel