From f46f3503fca50bfb397ed32d805158099a416f64 Mon Sep 17 00:00:00 2001
From: Ron Yorston <rmy@pobox.com>
Date: Thu, 22 Feb 2018 12:18:39 +0000
Subject: ash: tidy up /dev/null redirection

Remove some duplicated code and raise an error for unsupported
devices.
---
 shell/ash.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

(limited to 'shell')

diff --git a/shell/ash.c b/shell/ash.c
index 59c1d2272..4c9c76b8c 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -5701,22 +5701,17 @@ openredirect(union node *redir)
 	/* Support for /dev/null */
 	switch (redir->nfile.type) {
 		case NFROM:
-			if (!strcmp(fname, "/dev/null"))
-				return open("nul",O_RDWR);
-			if (!strncmp(fname, "/dev/", 5)) {
-				ash_msg("Unhandled device %s\n", fname);
-				return -1;
-			}
-			break;
-
 		case NFROMTO:
 		case NTO:
+#if BASH_REDIR_OUTPUT
+		case NTO2:
+#endif
 		case NCLOBBER:
 		case NAPPEND:
-			if (!strcmp(fname, "/dev/null"))
-				return open("nul",O_RDWR);
 			if (!strncmp(fname, "/dev/", 5)) {
-				ash_msg("Unhandled device %s\n", fname);
+				if (!strcmp(fname+5, "null"))
+					return open(fname,O_RDWR);
+				ash_msg_and_raise_error("Unhandled device %s\n", fname);
 				return -1;
 			}
 			break;
-- 
cgit v1.2.3-55-g6feb