From eff55d0de1eee416bc4669a4d17270c80e95fab4 Mon Sep 17 00:00:00 2001 From: taiyu Date: Tue, 18 Aug 2015 01:32:54 -0700 Subject: fixed doubling memory bug for config lines longer then 128 --- sway/readline.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sway/readline.c b/sway/readline.c index be8c35cc..dfdc3fe8 100644 --- a/sway/readline.c +++ b/sway/readline.c @@ -3,7 +3,7 @@ #include char *read_line(FILE *file) { - int i = 0, length = 0, size = 128; + int length = 0, size = 128; char *string = malloc(size); if (!string) { return NULL; @@ -16,21 +16,20 @@ char *read_line(FILE *file) { if (c == '\r') { continue; } - if (i == size) { - string = realloc(string, length *= 2); + if (length == size) { + string = realloc(string, size *= 2); if (!string) { return NULL; } } - string[i++] = (char)c; - length++; + string[length++] = c; } - if (i + 1 != size) { + if (length + 1 == size) { string = realloc(string, length + 1); if (!string) { return NULL; } } - string[i] = '\0'; + string[length] = '\0'; return string; } -- cgit v1.2.3-54-g00ecf