]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
shared: Fix EOF handling in freadline_wrapped
authorTobias Stoeckmann <tobias@stoeckmann.org>
Fri, 27 Sep 2024 19:52:27 +0000 (21:52 +0200)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Sat, 28 Sep 2024 04:17:38 +0000 (23:17 -0500)
If a file ends with a backslash without a newline, freadline_wrapped
adds EOF to the actual string.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Link: https://github.com/kmod-project/kmod/pull/159
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
shared/util.c
testsuite/rootfs-pristine/test-util/freadline_wrapped-correct.txt
testsuite/rootfs-pristine/test-util/freadline_wrapped-input.txt

index b9da7c4e9a03c0fe27c2b6c42922ba75591d54d6..5102879fb77dff4028cb3bfa73b831631f319cd6 100644 (file)
@@ -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 */
 
index 80c671be8d7355b389e043600a71fc342421f05b..8078899cfb9927cdeab258537584261e06c9a779 100644 (file)
@@ -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
index 1c81f915bf2677a882da3f17e9132cc6ae94a5c5..27aa1b1d86b13b20233934caf3bda039e849a257 100644 (file)
@@ -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