[FFmpeg-cvslog] avformat/argo_asf: Use memcpy to copy string without its NUL

Andreas Rheinhardt git at videolan.org
Sun Sep 26 10:02:56 EEST 2021


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sun Sep 26 04:07:30 2021 +0200| [3022f7487474ebb2812ae5e05b4be9b40431c20e] | committer: Andreas Rheinhardt

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 <zane at zanevaniperen.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3022f7487474ebb2812ae5e05b4be9b40431c20e
---

 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;



More information about the ffmpeg-cvslog mailing list