summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2023-04-22 21:41:53 +0100
committerPádraig Brady <P@draigBrady.com>2023-04-24 11:46:28 +0100
commit0e62ba282ef44567a73f93d77583a838447d7550 (patch)
tree1d04a92ffb7d85737c55a88bc323639666990433
parent9d333aca433c5c7ae988d262130eb7e0c81819cf (diff)
downloadcoreutils-0e62ba282ef44567a73f93d77583a838447d7550.tar.gz
tsort: diagnose errors reading the input
* src/tsort.c (tsort): Check for errors after readtoken(). * NEWS: Mention the bug fix.
-rw-r--r--NEWS3
-rw-r--r--src/tsort.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index a8db32246..2c68b1735 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,9 @@ GNU coreutils NEWS -*- outline -*-
Previously such file names would have caused the strip process to fail.
[This bug was present in "the beginning".]
+ tsort now diagnoses read errors on the input.
+ [This bug was present in "the beginning".]
+
* Noteworthy changes in release 9.3 (2023-04-18) [stable]
diff --git a/src/tsort.c b/src/tsort.c
index 0032cb5d0..2775fb39e 100644
--- a/src/tsort.c
+++ b/src/tsort.c
@@ -453,7 +453,11 @@ tsort (char const *file)
/* T2. Next Relation. */
size_t len = readtoken (stdin, DELIM, sizeof (DELIM) - 1, &tokenbuffer);
if (len == (size_t) -1)
- break;
+ {
+ if (ferror (stdin))
+ die (EXIT_FAILURE, errno, _("%s: read error"), quotef (file));
+ break;
+ }
assert (len != 0);