udevd: use worker_free() on failure in worker_new()

Otherwise, worker_monitor may not unrefed correctly.
This commit is contained in:
Yu Watanabe 2018-12-18 14:49:17 +09:00
parent ee0b9e721a
commit 1f3f6bd007
1 changed files with 3 additions and 1 deletions

View File

@ -186,6 +186,8 @@ static void worker_free(struct worker *worker) {
free(worker);
}
DEFINE_TRIVIAL_CLEANUP_FUNC(struct worker *, worker_free);
static void manager_workers_free(Manager *manager) {
struct worker *worker;
Iterator i;
@ -199,7 +201,7 @@ static void manager_workers_free(Manager *manager) {
}
static int worker_new(struct worker **ret, Manager *manager, sd_device_monitor *worker_monitor, pid_t pid) {
_cleanup_free_ struct worker *worker = NULL;
_cleanup_(worker_freep) struct worker *worker = NULL;
int r;
assert(ret);