[LEDE-DEV] [PATCH 5/5] initd: fix descriptor leak
Jo-Philipp Wich
jo at mein.io
Tue May 17 08:00:47 PDT 2016
Close the descriptor to /tmp/.preinit returned by creat() in order to avoid
an fd leak in the init process.
Signed-off-by: Jo-Philipp Wich <jo at mein.io>
---
initd/preinit.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/initd/preinit.c b/initd/preinit.c
index 51fde31..729978e 100644
--- a/initd/preinit.c
+++ b/initd/preinit.c
@@ -89,6 +89,7 @@ preinit(void)
{
char *init[] = { "/bin/sh", "/etc/preinit", NULL };
char *plug[] = { "/sbin/procd", "-h", "/etc/hotplug-preinit.json", NULL };
+ int fd;
LOG("- preinit -\n");
@@ -106,7 +107,13 @@ preinit(void)
uloop_process_add(&plugd_proc);
setenv("PREINIT", "1", 1);
- creat("/tmp/.preinit", 0600);
+
+ fd = creat("/tmp/.preinit", 0600);
+
+ if (fd < 0)
+ ERROR("Failed to create sentinel file\n");
+ else
+ close(fd);
preinit_proc.cb = spawn_procd;
preinit_proc.pid = fork();
--
2.1.4
More information about the Lede-dev
mailing list