From 369c5d0d48ccb333120206a42c96ef56e2ce6338 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Fri, 11 Oct 2002 14:20:33 +0000 Subject: [PATCH] Buffer overflow fixes. --- lib/silcutil/silcconfig.c | 10 +++------- lib/silcutil/silclog.c | 6 ++++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/lib/silcutil/silcconfig.c b/lib/silcutil/silcconfig.c index 692846f6..f179dc1d 100644 --- a/lib/silcutil/silcconfig.c +++ b/lib/silcutil/silcconfig.c @@ -336,13 +336,9 @@ char *silc_config_read_line(SilcConfigFile *file, SilcUInt32 line) found: if ((endbuf = strchr(p, '\n'))) { len = endbuf - p; - ret = silc_calloc(len, sizeof(*ret)); - strncpy(ret, p, len); - ret[len] = '\0'; - } - else { - ret = silc_calloc(strlen(p), sizeof(*ret)); - strcpy(ret, p); + ret = silc_memdup(p, len); + } else { + ret = silc_memdup(p, strlen(p)); } return ret; } diff --git a/lib/silcutil/silclog.c b/lib/silcutil/silclog.c index 8ce34c09..14d31d54 100644 --- a/lib/silcutil/silclog.c +++ b/lib/silcutil/silclog.c @@ -117,7 +117,8 @@ static void silc_log_checksize(SilcLog log) log->filename, oldfp)); return; } - if (size < log->maxsize) return; + if (size < log->maxsize) + return; /* It's too big */ fprintf(log->fp, "[%s] [%s] Cycling log file, over max " @@ -125,7 +126,8 @@ static void silc_log_checksize(SilcLog log) silc_get_time(0), log->typename, log->maxsize / 1024); fflush(log->fp); fclose(log->fp); - snprintf(newname, sizeof(newname), "%s.old", log->filename); + memset(newname, 0, sizeof(newname)); + snprintf(newname, sizeof(newname) - 1, "%s.old", log->filename); unlink(newname); /* I heard the following syscall may cause portability issues, but I don't -- 2.24.0