aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimo@apple.com>2024-06-06 17:24:07 +0000
committerAllan Jude <allanjude@FreeBSD.org>2024-06-06 17:24:15 +0000
commit4472fd66d0067347e3123896ae1b33f8bd444d56 (patch)
tree5163c955e40c97ecfc122c740215a0be218ccd1e
parent60107d23d8f2c05f418c024000a31a6148d2f7de (diff)
lam: fail on I/O errors
I/O errors should be reported; however lam currently does not disambiguate between EOF because end-of-file was reached and EOF because an I/O error occurred. This commit changes lam to exit with EX_IOERR when an I/O error occurs. Reviewed by: imp, allanjude Sponsored by: Apple Inc. Differential Revision: https://reviews.freebsd.org/D45437
-rw-r--r--usr.bin/lam/lam.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.bin/lam/lam.c b/usr.bin/lam/lam.c
index 68cb4b946575..2194ae7ab596 100644
--- a/usr.bin/lam/lam.c
+++ b/usr.bin/lam/lam.c
@@ -43,6 +43,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sysexits.h>
#include <unistd.h>
#define MAXOFILES 20
@@ -212,6 +213,9 @@ gatherline(struct openfile *ip)
*p = '\0';
if (c == EOF) {
ip->eof = 1;
+ if (ferror(ip->fp)) {
+ err(EX_IOERR, NULL);
+ }
if (ip->fp == stdin)
fclose(stdin);
morefiles--;