diff options
author | Ingo Bürk | 2019-06-18 09:33:47 +0200 |
---|---|---|
committer | GitHub | 2019-06-18 09:33:47 +0200 |
commit | bd7de0c8ff07023f0ccfdc11bd2f0ab930611076 (patch) | |
tree | b6e35d33b4aec49343a88a046268684b8d697be6 | |
parent | Added function to print content from file (#331) (diff) | |
parent | print_file_contents: allocate enough to include \0 (diff) |
Merge pull request #347 from thrasymache/overflow
print_file_contents: allocate enough to include \0
-rw-r--r-- | src/print_file_contents.c | 2 | ||||
-rw-r--r-- | testcases/025-file-contents/expected_output.txt | 2 | ||||
-rw-r--r-- | testcases/025-file-contents/i3status.conf | 6 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/print_file_contents.c b/src/print_file_contents.c index afbe3e3..91ad80e 100644 --- a/src/print_file_contents.c +++ b/src/print_file_contents.c @@ -23,7 +23,7 @@ static void *scalloc(size_t size) { void print_file_contents(yajl_gen json_gen, char *buffer, const char *title, const char *path, const char *format, const char *format_bad, const int max_chars) { const char *walk = format; char *outwalk = buffer; - char *buf = scalloc(max_chars * sizeof(char)); + char *buf = scalloc(max_chars * sizeof(char) + 1); int n = -1; int fd = open(path, O_RDONLY); diff --git a/testcases/025-file-contents/expected_output.txt b/testcases/025-file-contents/expected_output.txt index 5c56020..b3fb8e5 100644 --- a/testcases/025-file-contents/expected_output.txt +++ b/testcases/025-file-contents/expected_output.txt @@ -1 +1 @@ -contents | NONEXISTANT - 2: No such file or directory +contents | con | NONEXISTANT - 2: No such file or directory diff --git a/testcases/025-file-contents/i3status.conf b/testcases/025-file-contents/i3status.conf index 26646cd..78f9f50 100644 --- a/testcases/025-file-contents/i3status.conf +++ b/testcases/025-file-contents/i3status.conf @@ -3,12 +3,18 @@ general { } order += "read_file EXISTING" +order += "read_file TRUNCATED" order += "read_file NONEXISTANT" read_file EXISTING { path = "testcases/025-file-contents/short.txt" } +read_file TRUNCATED { + path = "testcases/025-file-contents/short.txt" + max_characters = 3 +} + read_file NONEXISTANT { path = "testcases/025-file-contents/nonexistant" } |