[FFmpeg-devel] [PATCH] avformat/hls: use av_strlcopy instead of strncpy
Leo Izen
leo.izen at gmail.com
Thu Oct 26 14:08:47 EEST 2023
On 10/26/23 06:54, Andreas Rheinhardt wrote:
> Leo Izen:
>> Avoids a -Wstringop-truncation warning by using av_strlcopy instead of
>> strncpy.
>>
>> Signed-off-by: Leo Izen <leo.izen at gmail.com>
>> ---
>> libavformat/hls.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/hls.c b/libavformat/hls.c
>> index f5f549b24d..076f92ecfb 100644
>> --- a/libavformat/hls.c
>> +++ b/libavformat/hls.c
>> @@ -543,7 +543,7 @@ static struct rendition *new_rendition(HLSContext *c, struct rendition_info *inf
>> int langlen = strlen(rend->language);
>> if (langlen < sizeof(rend->language) - 3) {
>> rend->language[langlen] = ',';
>> - strncpy(rend->language + langlen + 1, info->assoc_language,
>> + av_strlcpy(rend->language + langlen + 1, info->assoc_language,
>> sizeof(rend->language) - langlen - 2);
>> }
>> }
>
> Doesn't this just silence the warning instead of fixing the potential
> truncation?
>
> - Andreas
>
The semantics of strlcpy and strncpy are slightly different. strlcopy
*always* nul-terminates the destination string. strncpy zeroes the
buffer and then runs memcpy, so if it would overflow the buffer the
string ends up without a nul-terminator. The warning triggers because
the compiler thinks that case can occur.
- Leo Izen
More information about the ffmpeg-devel
mailing list