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