From 67118a6b334cd50c9f39a0c04506befd49bf592a Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich 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=UTF-8 Content-Transfer-Encoding: 8bit This prevents broken pipe errors in executed child processes that attempt to access stdin. Suggested-by: Vytautas Virvičius Signed-off-by: Jo-Philipp Wich --- 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]);