:: commit c6d619b17b4d4af44eb38ee00e5735e052ebbb78

Kamila Szewczyk <kspalaiologos@gmail.com> — 2022-05-13 07:02

parents: a8b0f6049a

`fread` check

diff --git a/src/main.c b/src/main.c
index 99be0c4..cb3d47c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -293,7 +293,10 @@ int main(int argc, char * argv[]) {
                     return 1;
                 }
                 old_size = read_neutral_s32(byteswap_buf);
-                fread(buffer, 1, new_size, input_des);
+                if(fread(buffer, 1, new_size, input_des) != new_size) {
+                    fprintf(stderr, "I/O error.\n");
+                    return 1;
+                }
                 if (bz3_decode_block(state, buffer, new_size, old_size) == -1) {
                     fprintf(stderr, "Failed to decode a block: %s\n", bz3_strerror(state));
                     return 1;
@@ -313,7 +316,10 @@ int main(int argc, char * argv[]) {
                     return 1;
                 }
                 old_size = read_neutral_s32(byteswap_buf);
-                fread(buffer, 1, new_size, input_des);
+                if(fread(buffer, 1, new_size, input_des) != new_size) {
+                    fprintf(stderr, "I/O error.\n");
+                    return 1;
+                }
                 if (bz3_decode_block(state, buffer, new_size, old_size) == -1) {
                     fprintf(stderr, "Failed to decode a block: %s\n", bz3_strerror(state));
                     return 1;
tab: 248 wrap: offon