diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index d1de8a70f91d2c31a76bd02651a6fd24651da1a2..37d2e97244215c562daaae39da64595fda3135fe 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -416,10 +416,13 @@ static int _make_step_cred(struct step_record *step_rec, cred_arg.ntask = xmalloc(cred_arg.ntask_cnt * sizeof(int)); memcpy(cred_arg.ntask, step_rec->job_ptr->ntask, cred_arg.ntask_cnt*sizeof(int)); - } + } else + cred_arg.ntask = NULL; - if ( (*slurm_cred = slurm_cred_create(slurmctld_config.cred_ctx, - &cred_arg)) == NULL) { + *slurm_cred = slurm_cred_create(slurmctld_config.cred_ctx, + &cred_arg); + xfree(cred_arg.ntask); + if (*slurm_cred == NULL) { error("slurm_cred_create error"); return ESLURM_INVALID_JOB_CREDENTIAL; }