Skip to content

Commit

Permalink
cgroups: use close_equal() and free_equal()
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
  • Loading branch information
Christian Brauner committed Feb 18, 2021
1 parent 284868b commit 8c49586
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 35 deletions.
12 changes: 3 additions & 9 deletions src/lxc/cgroups/cgfsng.c
Expand Up @@ -797,9 +797,7 @@ static int cgroup_tree_remove(struct hierarchy **hierarchies, const char *path_p
else
TRACE("Removed cgroup tree %d(%s)", h->dfd_base, path_prune);

if (h->container_limit_path != h->container_full_path)
free_disarm(h->container_limit_path);
free_disarm(h->container_full_path);
free_equal(h->container_limit_path, h->container_full_path);
}

return 0;
Expand Down Expand Up @@ -1185,12 +1183,8 @@ static void cgroup_tree_prune_leaf(struct hierarchy *h, const char *path_prune,
if (h->cgfd_limit < 0)
prune = false;

if (h->container_full_path != h->container_limit_path)
free_disarm(h->container_limit_path);
free_disarm(h->container_full_path);

close_prot_errno_disarm(h->cgfd_con);
close_prot_errno_disarm(h->cgfd_limit);
free_equal(h->container_full_path, h->container_limit_path);
close_equal(h->cgfd_con, h->cgfd_limit);
} else {
/* Check whether we actually created the cgroup to prune. */
if (h->cgfd_mon < 0)
Expand Down
32 changes: 6 additions & 26 deletions src/lxc/cgroups/cgroup.c
Expand Up @@ -14,6 +14,7 @@
#include "conf.h"
#include "config.h"
#include "initutils.h"
#include "memory_utils.h"
#include "log.h"
#include "start.h"
#include "string_utils.h"
Expand Down Expand Up @@ -68,11 +69,7 @@ void cgroup_exit(struct cgroup_ops *ops)
free(ops->cgroup_pattern);
free(ops->monitor_cgroup);

{
if (ops->container_cgroup != ops->container_limit_cgroup)
free(ops->container_limit_cgroup);
free(ops->container_cgroup);
}
free_equal(ops->container_cgroup, ops->container_limit_cgroup);

if (ops->cgroup2_devices)
bpf_program_free(ops->cgroup2_devices);
Expand All @@ -92,32 +89,15 @@ void cgroup_exit(struct cgroup_ops *ops)
free((*it)->mountpoint);
free((*it)->container_base_path);

{
free((*it)->container_full_path);

if ((*it)->container_full_path != (*it)->container_limit_path)
free((*it)->container_limit_path);
}

{
if ((*it)->cgfd_limit >= 0 && (*it)->cgfd_con != (*it)->cgfd_limit)
close((*it)->cgfd_limit);
free_equal((*it)->container_full_path,
(*it)->container_limit_path);

if ((*it)->cgfd_con >= 0)
close((*it)->cgfd_con);

}
close_equal((*it)->cgfd_con, (*it)->cgfd_limit);

if ((*it)->cgfd_mon >= 0)
close((*it)->cgfd_mon);

{
if ((*it)->dfd_base >= 0 && (*it)->dfd_mnt != (*it)->dfd_base)
close((*it)->dfd_base);

if ((*it)->dfd_mnt >= 0)
close((*it)->dfd_mnt);
}
close_equal((*it)->dfd_base, (*it)->dfd_mnt);

free(*it);
}
Expand Down

0 comments on commit 8c49586

Please sign in to comment.