From 3022f7487474ebb2812ae5e05b4be9b40431c20e Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sun, 26 Sep 2021 04:07:30 +0200 Subject: [PATCH] avformat/argo_asf: Use memcpy to copy string without its NUL This avoids a -Wstringop-truncation warning from GCC which takes issue with the fact that the destination might not be NUL-terminated. Reviewed-by: Zane van Iperen Signed-off-by: Andreas Rheinhardt --- libavformat/argo_asf.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index 5adafb7230..7e759c7c0c 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -356,25 +356,19 @@ static int argo_asf_write_header(AVFormatContext *s) .num_chunks = 1, .chunk_offset = ASF_FILE_HEADER_SIZE }; + const char *name = ctx->name, *end; + size_t len; /* * If the user specified a name, use it as is. Otherwise take the * basename and lop off the extension (if any). */ - if (ctx->name) { - strncpy(fhdr.name, ctx->name, sizeof(fhdr.name)); + if (name || !(end = strrchr((name = av_basename(s->url)), '.'))) { + len = strlen(name); } else { - const char *start = av_basename(s->url); - const char *end = strrchr(start, '.'); - size_t len; - - if (end) - len = end - start; - else - len = strlen(start); - - memcpy(fhdr.name, start, FFMIN(len, sizeof(fhdr.name))); + len = end - name; } + memcpy(fhdr.name, name, FFMIN(len, sizeof(fhdr.name))); chdr.num_blocks = 0; chdr.num_samples = ASF_SAMPLE_COUNT;