diff options
author | Leo Izen <leo.izen@gmail.com> | 2023-11-23 10:31:59 -0500 |
---|---|---|
committer | Leo Izen <leo.izen@gmail.com> | 2023-12-16 04:28:20 -0500 |
commit | 1f56bfc9869b05df7bf15705c3f7b137dece1bd6 (patch) | |
tree | 26eefb026243ae1b20239d60e577c41c0ae054b4 /libavformat | |
parent | 918b3ed2d51c11a474b8a9ce7b784f7a20d9645b (diff) | |
download | ffmpeg-1f56bfc9869b05df7bf15705c3f7b137dece1bd6.tar.gz |
avformat/hls: use av_strlcopy instead of strncpy
Avoids a -Wstringop-truncation warning by using av_strlcopy instead of
strncpy. Additionally, prints a warning to the log context if this
truncation occurred.
Signed-off-by: Leo Izen <leo.izen@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/hls.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libavformat/hls.c b/libavformat/hls.c index f5f549b24d..61e2d67588 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -540,11 +540,16 @@ static struct rendition *new_rendition(HLSContext *c, struct rendition_info *inf } if (info->assoc_language[0]) { - int langlen = strlen(rend->language); + size_t langlen = strlen(rend->language); if (langlen < sizeof(rend->language) - 3) { + size_t assoc_len; rend->language[langlen] = ','; - strncpy(rend->language + langlen + 1, info->assoc_language, - sizeof(rend->language) - langlen - 2); + assoc_len = av_strlcpy(rend->language + langlen + 1, + info->assoc_language, + sizeof(rend->language) - langlen - 1); + if (langlen + assoc_len + 2 > sizeof(rend->language)) // truncation occurred + av_log(c->ctx, AV_LOG_WARNING, "Truncated rendition language: %s\n", + info->assoc_language); } } |