summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-09-15 12:06:52 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2020-09-15 12:06:52 -0400
commit6bc53fabf9186a4ec6433154719ff9c3116c269f (patch)
tree8f99cf6c7036bf828f0da2cb648d1f0b4667b04c
parent8b055201c01d3ac5816b687792ce2f179d1bf9ef (diff)
Close files after read
-rw-r--r--tools/xor_compress.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/xor_compress.c b/tools/xor_compress.c
index 03ea451..49f23ea 100644
--- a/tools/xor_compress.c
+++ b/tools/xor_compress.c
@@ -46,6 +46,7 @@ unsigned char *read_files(char *filenames[], int num_files, size_t *buf_size, in
unsigned char *buf_end = buffer + (*buf_size - f_size);
size_t read_size = fread(buf_end, 1, f_size, f);
+ fclose(f);
if (read_size != f_size) {
// fread does not set errno
fprintf(stderr, PROGRAM_NAME ": %s: Read error\n", filename);
@@ -79,7 +80,7 @@ int compress_files(char *filenames[], int num_files) {
if (data[i] == v) {
// Alternating (>= 0x80)
// Run stops at 0x80 bytes or when the values stop alternating
- for (; i < n && size < 0x80 && data[i] == (size % 2 ? byte : v); size++, i++);
+ for (; i < n && size < 0x80 && data[i] == ((size % 2) ? byte : v); size++, i++);
putchar(size + 0x7f);
putchar(v ^ byte);
if (size % 2 == 0) v = byte;