From 0d8736772d3dda40852c552edfbc649a3494d2fa Mon Sep 17 00:00:00 2001
From: Denis Vlasenko <vda.linux@googlemail.com>
Date: Tue, 11 Nov 2008 22:43:10 +0000
Subject: [PATCH] head: report file open errors with exitcode 1 (was happily
 returning 0)

head_main                                            409     417      +8
---
 coreutils/head.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/coreutils/head.c b/coreutils/head.c
index 570f140b1..ac476d091 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -40,7 +40,6 @@ int head_main(int argc, char **argv)
 	int count_bytes = 0;
 	int header_threshhold = 1;
 #endif
-
 	FILE *fp;
 	const char *fmt;
 	char *p;
@@ -50,7 +49,7 @@ int head_main(int argc, char **argv)
 
 #if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
 	/* Allow legacy syntax of an initial numeric option without -n. */
-	if (argc > 1 && argv[1][0] == '-'
+	if (argv[1] && argv[1][0] == '-'
 	 && isdigit(argv[1][1])
 	) {
 		--argc;
@@ -79,7 +78,6 @@ int head_main(int argc, char **argv)
 #if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
  GET_COUNT:
 #endif
-
 #if !ENABLE_FEATURE_FANCY_HEAD
 			count = xatoul(p);
 #else
@@ -128,10 +126,12 @@ int head_main(int argc, char **argv)
 				putchar(c);
 			}
 			if (fclose_if_not_stdin(fp)) {
-				bb_simple_perror_msg(*argv);	/* Avoid multibyte problems. */
+				bb_simple_perror_msg(*argv);
 				retval = EXIT_FAILURE;
 			}
 			die_if_ferror_stdout();
+		} else {
+			retval = EXIT_FAILURE;
 		}
 		fmt = header_fmt_str;
 	} while (*++argv);
-- 
2.25.1