On 26/9/21 1:09 pm, Andreas Rheinhardt wrote:
This avoids a -Wstringop-truncation warning from GCC which takes
issue with the fact that the destination might not be NUL terminated.

Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com>
---
  libavformat/argo_asf.c | 20 +++++++-------------
  1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index 5adafb7230..0ef970df8a 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));
-    } 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);
+    if (name || !(end = strrchr(name = av_basename(s->url), '.'))) {
+        len = strlen(name);
+    } else
+        len = end - name;
- memcpy(fhdr.name, start, FFMIN(len, sizeof(fhdr.name)));
-    }
+    memcpy(fhdr.name, name, FFMIN(len, sizeof(fhdr.name)));

Minor formatting nits:
* The first statement has braces, the second doesn't.
* A set of parentheses around "name = av_basename(s->url)" would make things 
clearer.

Otherwise, lgtm.

Zane
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to