From 8fe5dd327e16051a9c4e60a8df4c38f026e9c140 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 4 Feb 2003 20:52:39 +0000 Subject: [PATCH] NULL terminate the buffer in strformat. --- lib/silcutil/silcbuffmt.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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; -- 2.43.0