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>
(cherry picked from commit
67118a6b334cd50c9f39a0c04506befd49bf592a)
int opipe[2];
int epipe[2];
int opipe[2];
int epipe[2];
+ 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);
dup2(opipe[1], 1);
dup2(epipe[1], 2);
close(opipe[0]);
close(opipe[1]);
close(epipe[0]);
close(opipe[0]);
close(opipe[1]);
close(epipe[0]);