From aa1bdc680edfee4a60a0b6c783400ff1e4f28b9e Mon Sep 17 00:00:00 2001 From: Brian Christiansen <brian@schedmd.com> Date: Mon, 11 Sep 2017 15:55:48 -0600 Subject: [PATCH] Fix possible memory leak --- src/common/slurm_step_layout.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/slurm_step_layout.c b/src/common/slurm_step_layout.c index 120f3d0cc21..085bfd04816 100644 --- a/src/common/slurm_step_layout.c +++ b/src/common/slurm_step_layout.c @@ -485,8 +485,6 @@ static int _task_layout_hostfile(slurm_step_layout_t *step_layout, hostlist_t step_alloc_hosts = NULL; debug2("job list is %s", step_layout->node_list); - job_alloc_hosts = hostlist_create(step_layout->node_list); - itr = hostlist_iterator_create(job_alloc_hosts); if (!arbitrary_nodes) { error("no hostlist given for arbitrary dist"); return SLURM_ERROR; @@ -500,9 +498,14 @@ static int _task_layout_hostfile(slurm_step_layout_t *step_layout, step_layout->task_cnt, hostlist_count(step_alloc_hosts), hostlist_count(step_alloc_hosts)); + hostlist_destroy(step_alloc_hosts); return SLURM_ERROR; } - itr_task = hostlist_iterator_create(step_alloc_hosts); + + job_alloc_hosts = hostlist_create(step_layout->node_list); + itr = hostlist_iterator_create(job_alloc_hosts); + itr_task = hostlist_iterator_create(step_alloc_hosts); + while((host = hostlist_next(itr))) { step_layout->tasks[i] = 0; while((host_task = hostlist_next(itr_task))) { -- GitLab