From 67118a6b334cd50c9f39a0c04506befd49bf592a Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Fri, 21 Dec 2018 09:09:55 +0100
Subject: [PATCH] file: patch process stdin to /dev/null
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

This prevents broken pipe errors in executed child processes that
attempt to access stdin.

Suggested-by: Vytautas Virvičius <vy.virvicius@gmail.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
 file.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/file.c b/file.c
index 09b4afd..23deb73 100644
--- a/file.c
+++ b/file.c
@@ -597,6 +597,7 @@ rpc_file_exec_run(const char *cmd,
 {
 	pid_t pid;
 
+	int devnull;
 	int opipe[2];
 	int epipe[2];
 
@@ -629,10 +630,16 @@ rpc_file_exec_run(const char *cmd,
 	case 0:
 		uloop_done();
 
+		devnull = open("/dev/null", O_RDWR);
+
+		if (devnull == -1)
+			return UBUS_STATUS_UNKNOWN_ERROR;
+
+		dup2(devnull, 0);
 		dup2(opipe[1], 1);
 		dup2(epipe[1], 2);
 
-		close(0);
+		close(devnull);
 		close(opipe[0]);
 		close(opipe[1]);
 		close(epipe[0]);
-- 
2.25.1