From 0a391acf4c9a2e139243a41f5a56702232c2da1a Mon Sep 17 00:00:00 2001
From: Eliah Rebstock <elireb54@outlook.com>
Date: Thu, 26 Jul 2018 23:09:29 +0200
Subject: [PATCH] Use heap instead of stack with strings

---
 log/src/log.c   |  9 +++++++--
 log/src/utils.c | 24 ++++++++----------------
 2 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/log/src/log.c b/log/src/log.c
index b24ac89..a386198 100644
--- a/log/src/log.c
+++ b/log/src/log.c
@@ -490,11 +490,16 @@ void log_setmode(const char *s)
 void strwordx(char *buf, char *wrd)
 {
 	size_t i;
-	char STR1[256];
-	char STR2[256];
+	char *STR1;
+	char *STR2;
 
+	STR1 = malloc(strlen(buf+1));
+	STR2 = malloc(strlen(buf+1));
 	strcpy(STR1, strltrim(strrtrim(strcpy(STR2, buf))));
 	strcpy(buf, STR1);
+	free(STR1);
+	free(STR2);
+
 	if (*buf != '"')
 	{
 		strword(buf, wrd);
diff --git a/log/src/utils.c b/log/src/utils.c
index e7c6c19..e3e288b 100644
--- a/log/src/utils.c
+++ b/log/src/utils.c
@@ -16,11 +16,16 @@ void working()
 
 void getword(char *buf, char *wrd)
 {
-	char STR1[256];
-	char STR2[256];
+	char *STR1;
+	char *STR2;
 
+	STR1 = malloc(strlen(buf+1));
+	STR2 = malloc(strlen(buf+1));
 	strcpy(STR1, strltrim(strrtrim(strcpy(STR2, buf))));
 	strcpy(buf, STR1);
+	free(STR1);
+	free(STR2);
+
 	if (*buf == '"')
 		strwordx(buf, wrd);
 	else
@@ -30,19 +35,6 @@ void getword(char *buf, char *wrd)
 	}
 }
 
-/* char *strcpy_overlap(char *dst, char *src) */
-/* { */
-/*	size_t i = 0; */
-
-/*	do { */
-/*		dst[i] = src[i]; */
-/*		if (src[i++] == '\0') */
-/*			break; */
-/*	} while (1); */
-/*	return dst; */
-/* } */
-
-
 void stamp(long *i)
 {
 	gg.curstamp++;
@@ -103,7 +95,7 @@ void dounits(char *s, double *r)
 }
 
 
-void readreal(char s_[], double *r)
+void readreal(char *s_, double *r)
 {
 	char s[256];
 	long i;
-- 
GitLab