From 07bffd8cd6c89bc2e55124ef424b297834889753 Mon Sep 17 00:00:00 2001
From: Jan Willamowius <jan@willamowius.de>
Date: 周日, 21 4月 2019 23:56:48 +0800
Subject: [PATCH] don't write beyond buffer

---
 src/library/base/logger.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/library/base/logger.c b/src/library/base/logger.c
index 4ee8354..1e4e662 100644
--- a/src/library/base/logger.c
+++ b/src/library/base/logger.c
@@ -4,8 +4,9 @@
 #include <string.h>
 #include <stdarg.h>
 #include <time.h>
-#include <unistd.h>
+
 #ifdef __unix__
+#include <unistd.h>
 #define MAX_PATH 255
 #else
 #include <windows.h>
@@ -29,14 +30,14 @@
 	if (folder == 0) {
 		folder = "/tmp";
 	}
-	strcpy(logpath, folder);
-	strcat(logpath, "/open-license.log");
+	strncpy(logpath, folder, MAX_PATH);
+	strncat(logpath, "/open-license.log", MAX_PATH - strlen(logpath));
 #else
-	int plen=GetTempPath(MAX_PATH,logpath);
+	int plen = GetTempPath(MAX_PATH, logpath);
 	if(plen == 0) {
 		fprintf(stderr, "Error getting temporary directory path");
 	}
-	strcat(logpath,"open-license.log");
+	strncat(logpath, "open-license.log", MAX_PATH - strlen(logpath));
 #endif
 }
 

--
Gitblit v1.9.1