]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
cgroups: clean up cgroup_ops on initialization error 3837/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 11 May 2021 07:05:03 +0000 (09:05 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 11 May 2021 07:05:03 +0000 (09:05 +0200)
Fixes: #3836
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c
src/lxc/cgroups/cgroup.h

index 9e1ece5ca94473c63ca018b0a0df9e45a965079b..078d47609caa27a8f0723a17ca9fa3f2bf0493fd 100644 (file)
@@ -3342,14 +3342,14 @@ __cgfsng_ops static int cgfsng_data_init(struct cgroup_ops *ops)
 
 struct cgroup_ops *cgroup_ops_init(struct lxc_conf *conf)
 {
-       __do_free struct cgroup_ops *cgfsng_ops = NULL;
+       __cleanup_cgroup_ops struct cgroup_ops *cgfsng_ops = NULL;
 
        cgfsng_ops = zalloc(sizeof(struct cgroup_ops));
        if (!cgfsng_ops)
                return ret_set_errno(NULL, ENOMEM);
 
-       cgfsng_ops->cgroup_layout = CGROUP_LAYOUT_UNKNOWN;
-       cgfsng_ops->dfd_mnt = -EBADF;
+       cgfsng_ops->cgroup_layout       = CGROUP_LAYOUT_UNKNOWN;
+       cgfsng_ops->dfd_mnt             = -EBADF;
 
        if (initialize_cgroups(cgfsng_ops, conf))
                return NULL;
index abaac1124f19fc31662b586a2660f58aa8ab02b1..cb2a9751a9810ac5dc29817df0e97848aac7b1d4 100644 (file)
@@ -280,6 +280,7 @@ __hidden extern struct cgroup_ops *cgroup_init(struct lxc_conf *conf);
 
 __hidden extern void cgroup_exit(struct cgroup_ops *ops);
 define_cleanup_function(struct cgroup_ops *, cgroup_exit);
+#define __cleanup_cgroup_ops call_cleaner(cgroup_exit)
 
 __hidden extern int cgroup_attach(const struct lxc_conf *conf, const char *name,
                                  const char *lxcpath, pid_t pid);