[vlc-devel] [PATCH 3/3] Initialize title strings with non NULL pointer
Daniel Glaas
daniel.glaas at freenet.de
Thu Jul 23 13:56:03 CEST 2020
Lol, I forgot to commit the adaptions to my patch before creating the
last file...
Here it is, hopefully now in the correct version.
Am 23.07.20 um 09:39 schrieb Thomas Guillem:
> You are welcome, and thanks for your contribution!
>
> I suggest you the following:
>
> - p_feed->p_items[p_feed->i_items-1].psz_title = (char
> *)&s_init_title[0];
> + p_feed->p_items[p_feed->i_items-1].psz_title = (char *)s_init_title;
>
> Same for the other part of the code.
>
> Best,
> Thomas
>
> On Wed, Jul 22, 2020, at 22:49, Daniel Glaas wrote:
>>
>> Hi Thomas,
>>
>> I really appreciate your patient review, it hopefully made my patch
>> to something that contributes to VLC and I also learned a lot about
>> handling of chars and char arrays in C.
>>
>> I attached the corrected version of the patch.
>>
>> Am 22.07.20 um 08:45 schrieb Thomas Guillem:
>>> Hello,
>>>
>>> Yes the cast is correct but &s_init_title[0] == s_init_title, so you
>>> don't need &[0].
>>>
>>> On Tue, Jul 21, 2020, at 21:47, Daniel Glaas wrote:
>>>>
>>>> Please find attached my reworked commit, I think I implemented all
>>>> your remarks.
>>>>
>>>> I added some casts to cast away the const qualifier from
>>>> s_init_title to avoid that gcc prints warnings about that. I don't
>>>> know whether this is a good style in your opinion or not.
>>>>
>>>> Am 21.07.20 um 11:20 schrieb Thomas Guillem:
>>>>> Your commit looks good. Few remarks:
>>>>>
>>>>> - You don't need p_initTitle, you can use initTitle directly
>>>>>
>>>>> - static char initTitle[] = ""; <- missing const qualifier, the
>>>>> name doesn't respect the codestyle of the file (camal case), call
>>>>> it s_init_title (s for static).
>>>>>
>>>>> - I don't think the comment is needed.
>>>>>
>>>>> Best,
>>>>> Thomas
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Jul 21, 2020, at 01:36, Daniel Glaas wrote:
>>>>>> Hello Thomas,
>>>>>>
>>>>>> thank you for your review and you feedback, you pointed on some
>>>>>> very new
>>>>>> aspects for me ...
>>>>>>
>>>>>> I implemented the second alternative solution you proposed, by
>>>>>> introducing a special static const string with is assigned during
>>>>>> initialization of the variables and against which comparisons are
>>>>>> done.
>>>>>> The way I coded this in line 75f. is surely not the best was, after
>>>>>> trying several minutes around, I was not able to find a better
>>>>>> solution
>>>>>> that doesn't rise compiler warnings. I appreciate your suggestions.
>>>>>>
>>>>>> And of course you are right, the strdup("") calls lead to memory
>>>>>> leaks
>>>>>> as I never freed them. I'm sorry that I didn't notice that,
>>>>>> thanks for
>>>>>> noticing this.
>>>>>>
>>>>>> Am 20.07.20 um 08:33 schrieb Thomas Guillem:
>>>>>> > Hello,
>>>>>> >
>>>>>> > On Sat, Jul 18, 2020, at 12:47, Daniel Glaas wrote:
>>>>>> >> In principle, looking over all possible use cases of strdup I
>>>>>> agree that
>>>>>> >> there might be case where strdup() returns NULL. But here I
>>>>>> used it with
>>>>>> >> an empty string as parameter, meaning that malloc() only needs to
>>>>>> >> allocate one single byte in the memory. If this really fails,
>>>>>> then there
>>>>>> >> are other problems than only a wrong display of an RSS text
>>>>>> overlay.
>>>>>> > We require all allocations to be checked and handled. This is
>>>>>> not the
>>>>>> > case for every C programs and libs, but it is in VLC.
>>>>>> >
>>>>>> >
>>>>>> >> I also tried to add catches to the NULL pointers at those
>>>>>> places where
>>>>>> >> they are used. But in my opinion, this makes the places of
>>>>>> usage very
>>>>>> >> bad to read with a lot of NULL checks at various places. A lot
>>>>>> of places
>>>>>> >> in the *Filter() function rely on valid pointers where the
>>>>>> titles are
>>>>>> >> stored.
>>>>>> >>
>>>>>> > I see 2 other choices :
>>>>>> > - fix psz_title NULLITY check everywhere
>>>>>> > - Assign it to a special static const string (likely "") : in that
>>>>>> > case, you should check that the pointer is not equals to this
>>>>>> special
>>>>>> > string pointer before freeing it.
>>>>>> >
>>>>>> > Also, your patch seems to leak the "" allocation when psz_title is
>>>>>> > replaced by a new string.
>>>>>> >
>>>>>> >> Am 18.07.20 um 09:41 schrieb Rémi Denis-Courmont:
>>>>>> >>> Le lauantaina 18. heinäkuuta 2020, 5.07.00 EEST Daniel Glaas
>>>>>> a écrit :
>>>>>> >>>> Initialize title strings with non NULL pointer
>>>>>> >>>>
>>>>>> >>>> If no valid title could be parsed out of an RSS feed, the
>>>>>> >>>> segmentation fault
>>>>>> >>>> caused VLC to crash. The reason therefore was that the expected
>>>>>> >>>> pointers to
>>>>>> >>>> the char buffers containing the titles were NULL pointers.
>>>>>> >>> This won't work because strdup() can return NULL. Better
>>>>>> handle the NULL
>>>>>> >>> values correctly.
>>>>>> >>>
>>>>>> >> _______________________________________________
>>>>>> >> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> vlc-devel mailing list
>>>>>> To unsubscribe or modify your subscription options:
>>>>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>>>>
>>>>>> *Attachments:*
>>>>>>
>>>>>> * 0003-Initialize-title-strings-with-static-const-empty-cha.patch
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>> *Attachments:*
>>>>
>>>> * 0003-Initialize-title-strings-with-static-const-empty-cha.patch
>>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>> *Attachments:*
>>
>> * 0003-Initialize-title-strings-with-static-const-empty-cha.patch
>>
>
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200723/2c7931ed/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Initialize-title-strings-with-static-const-empty-cha.patch
Type: text/x-patch
Size: 4229 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200723/2c7931ed/attachment.bin>
More information about the vlc-devel
mailing list