aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/strings.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/util/strings.c b/src/util/strings.c
index f32c3ea61..54a594c51 100644
--- a/src/util/strings.c
+++ b/src/util/strings.c
@@ -62,25 +62,25 @@
62 * (or number of bytes that would have been written) 62 * (or number of bytes that would have been written)
63 */ 63 */
64size_t 64size_t
65GNUNET_STRINGS_buffer_fill (char *buffer, size_t size, unsigned int count, ...) 65GNUNET_STRINGS_buffer_fill (char *buffer,
66 size_t size,
67 unsigned int count, ...)
66{ 68{
67 size_t needed; 69 size_t needed;
68 size_t slen;
69 const char *s;
70 va_list ap; 70 va_list ap;
71 71
72 needed = 0; 72 needed = 0;
73 va_start (ap, count); 73 va_start (ap, count);
74 while (count > 0) 74 while (count > 0)
75 { 75 {
76 s = va_arg (ap, const char *); 76 const char *s = va_arg (ap, const char *);
77 77 size_t slen = strlen (s) + 1;
78 slen = strlen (s) + 1; 78
79 if (buffer != NULL) 79 GNUNET_assert (slen <= size - needed);
80 { 80 if (NULL != buffer)
81 GNUNET_assert (needed + slen <= size); 81 GNUNET_memcpy (&buffer[needed],
82 GNUNET_memcpy (&buffer[needed], s, slen); 82 s,
83 } 83 slen);
84 needed += slen; 84 needed += slen;
85 count--; 85 count--;
86 } 86 }