projects
/
oweals
/
procd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
38dd221
)
initd: fix descriptor leak
author
Jo-Philipp Wich
<jo@mein.io>
Tue, 17 May 2016 15:00:47 +0000
(17:00 +0200)
committer
John Crispin
<john@phrozen.org>
Mon, 16 May 2016 19:00:54 +0000
(21:00 +0200)
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@mein.io>
initd/preinit.c
patch
|
blob
|
history
diff --git
a/initd/preinit.c
b/initd/preinit.c
index 51fde31a5c351c4745ded5499d1175eb95b81b41..729978ea2f2af790653baaee5ae788f05a88a177 100644
(file)
--- 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();