From: Jo-Philipp Wich Date: Fri, 21 Dec 2018 08:30:19 +0000 (+0100) Subject: file: avoid closing stdio descriptors in rpc_file_exec_run X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=313964caa8342a2f63258f2c98b714cd2de4fb52;p=oweals%2Frpcd.git file: avoid closing stdio descriptors in rpc_file_exec_run Signed-off-by: Jo-Philipp Wich (cherry picked from commit ffaa6132cb968fbf9532bdb9cbd0780073b9e7cd) --- diff --git a/file.c b/file.c index 23deb73..016f264 100644 --- a/file.c +++ b/file.c @@ -590,6 +590,13 @@ rpc_file_exec_epipe_state_cb(struct ustream *s) rpc_file_exec_reply(c, UBUS_STATUS_OK); } +static void +rpc_fdclose(int fd) +{ + if (fd > 2) + close(fd); +} + static int rpc_file_exec_run(const char *cmd, const struct blob_attr *arg, const struct blob_attr *env, @@ -639,11 +646,11 @@ rpc_file_exec_run(const char *cmd, dup2(opipe[1], 1); dup2(epipe[1], 2); - close(devnull); - close(opipe[0]); - close(opipe[1]); - close(epipe[0]); - close(epipe[1]); + rpc_fdclose(devnull); + rpc_fdclose(opipe[0]); + rpc_fdclose(opipe[1]); + rpc_fdclose(epipe[0]); + rpc_fdclose(epipe[1]); arglen = 2; args = malloc(sizeof(char *) * arglen);