fix #6154
authorChristian Grothoff <christian@grothoff.org>
Fri, 3 Apr 2020 12:18:58 +0000 (14:18 +0200)
committerChristian Grothoff <christian@grothoff.org>
Fri, 3 Apr 2020 12:18:58 +0000 (14:18 +0200)
src/util/strings.c

index f32c3ea61bba7248f1ecfc83a91eac97e031091f..54a594c51112a68cdd680def9d7bcfe82605fe0f 100644 (file)
  *         (or number of bytes that would have been written)
  */
 size_t
-GNUNET_STRINGS_buffer_fill (char *buffer, size_t size, unsigned int count, ...)
+GNUNET_STRINGS_buffer_fill (char *buffer,
+                            size_t size,
+                            unsigned int count, ...)
 {
   size_t needed;
-  size_t slen;
-  const char *s;
   va_list ap;
 
   needed = 0;
   va_start (ap, count);
   while (count > 0)
   {
-    s = va_arg (ap, const char *);
-
-    slen = strlen (s) + 1;
-    if (buffer != NULL)
-    {
-      GNUNET_assert (needed + slen <= size);
-      GNUNET_memcpy (&buffer[needed], s, slen);
-    }
+    const char *s = va_arg (ap, const char *);
+    size_t slen = strlen (s) + 1;
+
+    GNUNET_assert (slen <= size - needed);
+    if (NULL != buffer)
+      GNUNET_memcpy (&buffer[needed],
+                     s,
+                     slen);
     needed += slen;
     count--;
   }