[vlc-devel] [PATCH] vlc_es: add more documentation on es_format_Copy

Steve Lhomme robux4 at gmail.com
Thu Jul 13 08:22:13 CEST 2017


On Wed, Jul 12, 2017 at 5:24 PM, Rémi Denis-Courmont <remi at remlab.net> wrote:
> On mercredi 12 juillet 2017 16:51:19 EEST Steve Lhomme wrote:
>> It must copy to an unitialized structure or one that was cleaned before.
>>
>> The result should always be checked as there are allocations that can fail
>> but it's not safe for now given the state of the rest of the code.
>> ---
>>  include/vlc_es.h | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/include/vlc_es.h b/include/vlc_es.h
>> index e9d11d85a8..a428b561c2 100644
>> --- a/include/vlc_es.h
>> +++ b/include/vlc_es.h
>> @@ -627,7 +627,10 @@ VLC_API void es_format_InitFromVideo( es_format_t *,
>> const video_format_t * );
>>
>>  /**
>>   * This functions will copy a es_format_t.
>> + *
>> + * The destination pointer must be uninitialized or not old any allocated

Typo "hold"

>> buffer. */
>> +/* VLC_USED for now we're okay with losing strings and extradata */
>>  VLC_API int es_format_Copy( es_format_t *p_dst, const es_format_t *p_src );
>>
>>  /**
>
> No. The error is impossible in some code paths (e.g. audio filters), and
> totally harmless in others. Littering the code base with untested, buggy and
> sometimes dead, error code does not make sense.
>
> You can't add VLC_USED then, since ignoring the result is not always a bug.

OK

> And video.p_palette should die. And language should be a small fixed size

I think the reason to use a union was to save space. If we force
psz_language and psz_description to fixed size buffers we lose that
advantage and we gain strings that may not always fit the strings we
want to store.

> character array. That leaves only p_extra IIRC.

There's also p_extra_languages, subs.psz_encoding and subs.p_style.

So dynamically allocated memory in es_format_t is not going away
anytime soon (if ever). We should make sure it's handled properly and
make it harder to have leaks.

> --
> Rémi Denis-Courmont
> _______________________________________________
> 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