diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-06-02 08:05:43 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-06-02 08:07:44 -0400 |
commit | 85a5c8dabd2561dfe616bea50faf2549e8cb345e (patch) | |
tree | 919f22247b71c5562b3c1caff4f0bfa9dfcf0528 | |
parent | Address emersion's feedback on peek_line (diff) | |
download | sway-85a5c8dabd2561dfe616bea50faf2549e8cb345e.tar.gz sway-85a5c8dabd2561dfe616bea50faf2549e8cb345e.tar.zst sway-85a5c8dabd2561dfe616bea50faf2549e8cb345e.zip |
Fix infinite loop in peek_line for EOF blanks
-rw-r--r-- | common/readline.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/common/readline.c b/common/readline.c index 46b96623..1c396a90 100644 --- a/common/readline.c +++ b/common/readline.c | |||
@@ -56,6 +56,8 @@ char *peek_line(FILE *file, int line_offset, long *position) { | |||
56 | for (int i = 0; i <= line_offset; i++) { | 56 | for (int i = 0; i <= line_offset; i++) { |
57 | ssize_t read = getline(&line, &length, file); | 57 | ssize_t read = getline(&line, &length, file); |
58 | if (read < 0) { | 58 | if (read < 0) { |
59 | free(line); | ||
60 | line = NULL; | ||
59 | break; | 61 | break; |
60 | } | 62 | } |
61 | if (read > 0 && line[read - 1] == '\n') { | 63 | if (read > 0 && line[read - 1] == '\n') { |