From: Pekka Riikonen Date: Tue, 4 Feb 2003 20:52:39 +0000 (+0000) Subject: NULL terminate the buffer in strformat. X-Git-Tag: silc.client.0.9.12~18 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=8fe5dd327e16051a9c4e60a8df4c38f026e9c140;p=silc.git NULL terminate the buffer in strformat. --- diff --git a/lib/silcutil/silcbuffmt.c b/lib/silcutil/silcbuffmt.c index 4fffb7c3..a189c290 100644 --- a/lib/silcutil/silcbuffmt.c +++ b/lib/silcutil/silcbuffmt.c @@ -532,9 +532,12 @@ int silc_buffer_strformat(SilcBuffer dst, ...) goto ok; dst->head = silc_realloc(dst->head, sizeof(*dst->head) * - (strlen(string) + len)); + (strlen(string) + len + 1)); + if (!dst->head) + return -1; memcpy(dst->head + len, string, strlen(string)); len += strlen(string); + dst->head[len] = '\0'; } SILC_LOG_DEBUG(("Error occured while formatting buffer")); @@ -543,9 +546,9 @@ int silc_buffer_strformat(SilcBuffer dst, ...) ok: dst->end = dst->head + len; - dst->tail = dst->data = dst->end; - dst->len = 0; - dst->truelen = len; + dst->data = dst->head; + dst->tail = dst->end; + dst->len = dst->truelen = len; va_end(va); return len;