[vlc-devel] [PATCH 3/3] lib: media: Hold the media during the preparsing

Steve Lhomme robux4 at ycbcr.xyz
Mon Nov 16 13:35:04 CET 2020


Set of patches LGTM.

On 2020-11-16 12:26, Thomas Guillem wrote:
> LGTM for the set.
> 
> On Fri, Nov 13, 2020, at 14:07, Hugo Beauzée-Luyssen wrote:
>> This prevents a potential use after free if the caller releases the
>> media before the preparsing is complete, or if the media is immediatly
>> released after the preparsing completes since
>> a4a94bb3f942989302d0aebc22f3de8ad897a8ff
>> ---
>>   lib/media.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/lib/media.c b/lib/media.c
>> index 7ab98de7c1..346809f93b 100644
>> --- a/lib/media.c
>> +++ b/lib/media.c
>> @@ -404,6 +404,7 @@ static void input_item_preparse_ended(input_item_t *item,
>>               return;
>>       }
>>       send_parsed_changed( p_md, new_status );
>> +    libvlc_media_release( p_md );
>>   }
>>   
>>   /**
>> @@ -835,11 +836,15 @@ static int media_parse(libvlc_media_t *media,
>> bool b_async,
>>           if (parse_flag & libvlc_media_do_interact)
>>               parse_scope |= META_REQUEST_OPTION_DO_INTERACT;
>>   
>> +        libvlc_media_retain(media);
>>           ret = libvlc_MetadataRequest(libvlc, item, parse_scope,
>>                                        &input_preparser_callbacks, media,
>>                                        timeout, media);
>>           if (ret != VLC_SUCCESS)
>> +        {
>> +            libvlc_media_release(media);
>>               return ret;
>> +        }
>>       }
>>       else
>>           return VLC_EGENERIC;
>> -- 
>> 2.29.2
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list