]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udevd: use worker_free() on failure in worker_new()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 18 Dec 2018 05:49:17 +0000 (14:49 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 12 Jan 2019 00:32:20 +0000 (09:32 +0900)
Otherwise, worker_monitor may not unrefed correctly.

src/udev/udevd.c

index 697506feaf55dd5a826a434e42215cf393ac3bb8..33fc0b3c2cd72582622a17dc60cff0dfb9d05db0 100644 (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);