diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c index 439c0ac32412e3844cae6ecd79513a37e3ebb1c4..7c7331c5f3bd94439bfec4fdc0623c5e9a886557 100644 --- a/src/slurmd/slurmstepd/mgr.c +++ b/src/slurmd/slurmstepd/mgr.c @@ -1847,12 +1847,13 @@ _send_pending_exit_msgs(stepd_step_rec_t *job) int nsent = 0; int status = 0; bool set = false; - uint32_t tid[job->node_tasks]; + uint32_t *tid; /* * Collect all exit codes with the same status into a * single message. */ + tid = xmalloc(sizeof(uint32_t) * job->node_tasks); for (i = 0; i < job->node_tasks; i++) { stepd_step_task_info_t *t = job->task[i]; @@ -1873,6 +1874,7 @@ _send_pending_exit_msgs(stepd_step_rec_t *job) debug2("Aggregated %d task exit messages", nsent); _send_exit_msg(job, tid, nsent, status); } + xfree(tid); return nsent; }