mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
selftests/cgroup: Free the paths returned by cg_control()
cg_control() returns a path allocated with malloc(). The two callers that pass it straight to inotify_add_watch() never free it, and pass NULL to it if the allocation fails. Keep the path in a local variable, check it, and free it when done. Assisted-by: LLM Signed-off-by: Sasha Levin <sashal@kernel.org> Acked-by: Michal Koutný <mkoutny@suse.com> Reviewed-by: T.J. Mercier <tjmercier@google.com> Acked-by: Shakeel Butt <shakeel.butt@linux.dev> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
61c77b323c
commit
316b06ccee
|
|
@ -659,18 +659,25 @@ int clone_into_cgroup_run_wait(const char *cgroup)
|
|||
|
||||
static int __prepare_for_wait(const char *cgroup, const char *filename)
|
||||
{
|
||||
int fd, ret = -1;
|
||||
char *path;
|
||||
int fd, ret;
|
||||
|
||||
path = cg_control(cgroup, filename);
|
||||
if (!path)
|
||||
return -1;
|
||||
|
||||
fd = inotify_init1(0);
|
||||
if (fd == -1)
|
||||
return fd;
|
||||
goto out;
|
||||
|
||||
ret = inotify_add_watch(fd, cg_control(cgroup, filename), IN_MODIFY);
|
||||
ret = inotify_add_watch(fd, path, IN_MODIFY);
|
||||
if (ret == -1) {
|
||||
close(fd);
|
||||
fd = -1;
|
||||
}
|
||||
|
||||
out:
|
||||
free(path);
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1677,7 +1677,7 @@ static int read_event(int inotify_fd, int expected_event, int expected_wd)
|
|||
static int test_memcg_inotify_delete_file(const char *root)
|
||||
{
|
||||
int ret = KSFT_FAIL;
|
||||
char *memcg = NULL;
|
||||
char *memcg = NULL, *events = NULL;
|
||||
int fd = -1, wd;
|
||||
|
||||
memcg = cg_name(root, "memcg_test_0");
|
||||
|
|
@ -1692,7 +1692,11 @@ static int test_memcg_inotify_delete_file(const char *root)
|
|||
if (fd == -1)
|
||||
goto cleanup;
|
||||
|
||||
wd = inotify_add_watch(fd, cg_control(memcg, "memory.events"), IN_DELETE_SELF);
|
||||
events = cg_control(memcg, "memory.events");
|
||||
if (!events)
|
||||
goto cleanup;
|
||||
|
||||
wd = inotify_add_watch(fd, events, IN_DELETE_SELF);
|
||||
if (wd == -1)
|
||||
goto cleanup;
|
||||
|
||||
|
|
@ -1714,6 +1718,7 @@ static int test_memcg_inotify_delete_file(const char *root)
|
|||
close(fd);
|
||||
if (memcg)
|
||||
cg_destroy(memcg);
|
||||
free(events);
|
||||
free(memcg);
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user