From 6d1b1e0bc6bd020218afc5f05286bf372be283d5 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Sun, 24 May 2015 15:10:04 +0200 Subject: udevd: worker - fully clean up unnecessary fds These are only ever used in the parent process, so close them early in the worker. --- src/udev/udevd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/udev') diff --git a/src/udev/udevd.c b/src/udev/udevd.c index afd4640ad1..d8cb046e13 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -329,11 +329,15 @@ static void worker_spawn(Manager *manager, struct event *event) { manager_workers_free(manager); event_queue_cleanup(manager, EVENT_UNDEF); + manager->monitor = udev_monitor_unref(manager->monitor); + manager->ctrl_conn_blocking = udev_ctrl_connection_unref(manager->ctrl_conn_blocking); manager->ctrl = udev_ctrl_unref(manager->ctrl); + + manager->fd_ep = safe_close(manager->fd_ep); manager->fd_signal = safe_close(manager->fd_signal); + manager->fd_inotify = safe_close(manager->fd_inotify); manager->worker_watch[READ_END] = safe_close(manager->worker_watch[READ_END]); - manager->fd_ep = safe_close(manager->fd_ep); sigfillset(&mask); fd_signal = signalfd(-1, &mask, SFD_NONBLOCK|SFD_CLOEXEC); -- cgit v1.2.3-54-g00ecf