From: Tobias Stoeckmann Date: Fri, 27 Sep 2024 19:52:27 +0000 (+0200) Subject: shared: Fix EOF handling in freadline_wrapped X-Git-Tag: v34~282 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7805c95fbe703bff3d113bfedd5d607cf5da9444;p=thirdparty%2Fkmod.git shared: Fix EOF handling in freadline_wrapped If a file ends with a backslash without a newline, freadline_wrapped adds EOF to the actual string. Signed-off-by: Tobias Stoeckmann Link: https://github.com/kmod-project/kmod/pull/159 Signed-off-by: Lucas De Marchi --- diff --git a/shared/util.c b/shared/util.c index b9da7c4e..5102879f 100644 --- a/shared/util.c +++ b/shared/util.c @@ -319,6 +319,8 @@ char *freadline_wrapped(FILE *fp, unsigned int *linenum) if (ch == '\n') { n++; continue; + } else if (ch == EOF) { + continue; } /* else fall through */ diff --git a/testsuite/rootfs-pristine/test-util/freadline_wrapped-correct.txt b/testsuite/rootfs-pristine/test-util/freadline_wrapped-correct.txt index 80c671be..8078899c 100644 --- a/testsuite/rootfs-pristine/test-util/freadline_wrapped-correct.txt +++ b/testsuite/rootfs-pristine/test-util/freadline_wrapped-correct.txt @@ -8,3 +8,5 @@ this line has exactly 256 chars to make fun with the implementation, so it must 1 this line is very large because it has word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word until it hits 2015 chars 1 +wrapped without newline +1 diff --git a/testsuite/rootfs-pristine/test-util/freadline_wrapped-input.txt b/testsuite/rootfs-pristine/test-util/freadline_wrapped-input.txt index 1c81f915..27aa1b1d 100644 --- a/testsuite/rootfs-pristine/test-util/freadline_wrapped-input.txt +++ b/testsuite/rootfs-pristine/test-util/freadline_wrapped-input.txt @@ -6,3 +6,4 @@ lines \ in a row this line has exactly 256 chars to make fun with the implementation, so it must have word after word after word after word after word after word after word after word after word after word after word after word after word after word until it hits 256 chars this line is very large because it has word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word after word until it hits 2015 chars +wrapped without newline\ \ No newline at end of file