MINGW-packages/mingw-w64-indent/indent-2.2.12-fix-file-read-loop.patch
Mikael Ejberg Pedersen f7aa2cebf2 indent: Fix endless file read loop
Indent 2.2.12 would end up in an endless loop if indenting a file with
CR/LF line endings.
2021-06-06 11:27:21 +01:00

28 lines
690 B
Diff

--- a/src/code_io.c
+++ b/src/code_io.c
@@ -203,9 +203,9 @@ extern file_buffer_ty * read_file(
* bytes in a 16-bit world...
*/
- unsigned int size = 0, size_to_read = 0;
+ unsigned int size = 0, size_to_read = 0, size_sum = 0;
#else
- ssize_t size = 0;
+ ssize_t size = 0, size_sum = 0;
size_t size_to_read = 0;
#endif
@@ -284,8 +284,12 @@ extern file_buffer_ty * read_file(
xfree(fileptr.data);
fatal (_("Error reading input file %s"), filename);
}
+ if (size == 0)
+ break;
size_to_read -= size;
+ size_sum += size;
}
+ size = size_sum;
if (close(fd) < 0)
{