[FFmpeg-devel] [PATCH] avformat/dashdec: check NULL pointer of av_strtok

Leo Izen leo.izen at gmail.com
Fri Dec 27 17:36:34 EET 2024


On 12/27/24 9:15 AM, Steven Liu wrote:
> Leo Izen <leo.izen at gmail.com> 于2024年12月27日周五 21:29写道:
> Hi Leo,
>>
>> On 12/26/24 6:37 PM, Steven Liu wrote:
>>> fix CID: 1637073
>>> there maybe have NULL pointer return by av_strtok, and should be checked before
>>> strtoll it.
>>>
>>> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
>>> ---
>>>    libavformat/dashdec.c | 2 ++
>>>    1 file changed, 2 insertions(+)
>>>
>>> diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
>>> index 8107280444..043cd52232 100644
>>> --- a/libavformat/dashdec.c
>>> +++ b/libavformat/dashdec.c
>>> @@ -589,6 +589,8 @@ static struct fragment *get_fragment(char *range)
>>>        if (range) {
>>>            char *str_end_offset;
>>>            char *str_offset = av_strtok(range, "-", &str_end_offset);
>>> +        if (!str_offset)
>>> +            return NULL;
>>>            seg->url_offset = strtoll(str_offset, NULL, 10);
>>>            seg->size = strtoll(str_end_offset, NULL, 10) - seg->url_offset + 1;
>>>        }
>>
>> If the range is invalid, do we want to return NULL? What if the range is
>> a single integer, do we want to return that integer? What about
> NULL will happen when range is "-";
> But i think maybe it should av_free the seg here, is it?

Yes, if you don't av_free the segment here you will leak it if *range == 
'-'.

- Leo Izen (Traneptora)




More information about the ffmpeg-devel mailing list