diff options
Diffstat (limited to 'src/util/strings.c')
-rw-r--r-- | src/util/strings.c | 22 |
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 | */ |
64 | size_t | 64 | size_t |
65 | GNUNET_STRINGS_buffer_fill (char *buffer, size_t size, unsigned int count, ...) | 65 | GNUNET_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 | } |