diff options
author | IIMarckus <iimarckus@gmail.com> | 2017-06-29 22:45:30 -0600 |
---|---|---|
committer | IIMarckus <iimarckus@gmail.com> | 2017-06-29 22:45:30 -0600 |
commit | 80888726b9e5d8d62a8b1e76615bb11a1c9ca191 (patch) | |
tree | 30ca3db489f822926a80684d135d48af0585cdfb /tools/palette.c | |
parent | 2ebbe91fe8fe87587e688bae49732d82a2f1f8b5 (diff) |
Check some errors (not enough).
malloc can always fail. Check to avoid null dereference.
malloc(0) is well defined but leads to an eventual crash on some systems.
Check it too.
Diffstat (limited to 'tools/palette.c')
-rw-r--r-- | tools/palette.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/palette.c b/tools/palette.c index ebb8e4fbf..397c62651 100644 --- a/tools/palette.c +++ b/tools/palette.c @@ -50,9 +50,17 @@ void print_palette(char* palette_filename) { fseek(f, 0, SEEK_END); size = ftell(f); + if (!size) { + fprintf(stderr, "empty file %s\n", palette_filename); + exit(1); + } rewind(f); bytes = malloc(size); + if (!bytes) { + fprintf(stderr, "malloc failure\n"); + exit(1); + } fseek(f, 0, SEEK_SET); fread(bytes, 1, size, f); |