udevd: use worker_free() on failure in worker_new()
Otherwise, worker_monitor may not unrefed correctly.
This commit is contained in:
+3
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user