diff --git a/src/srun/libsrun/fname.c b/src/srun/libsrun/fname.c index 419ccc09559a42fdd3709c74dad968f7d4635365..eda68894250b6c00f5f8f2ce13c35ec6231de929 100644 --- a/src/srun/libsrun/fname.c +++ b/src/srun/libsrun/fname.c @@ -72,8 +72,9 @@ fname_create(srun_job_t *job, char *format) fname_t *fname = NULL; char *p, *q, *name, *tmp_env; uint32_t array_job_id = job->jobid; - uint16_t array_task_id = (uint16_t) NO_VAL; + uint32_t array_task_id = NO_VAL; char *esc; + char *end; fname = xmalloc(sizeof(*fname)); fname->type = IO_ALL; @@ -141,17 +142,17 @@ fname_create(srun_job_t *job, char *format) case 'a': /* '%a' => array task id */ tmp_env = getenv("SLURM_ARRAY_TASK_ID"); if (tmp_env) - array_task_id = atoi(tmp_env); + array_task_id = strtoul(tmp_env, &end, 10); xmemcat(name, q, p - 1); - xstrfmtcat(name, "%0*d", wid, array_task_id); + xstrfmtcat(name, "%0*u", wid, array_task_id); q = ++p; break; case 'A': /* '%A' => array master job id */ tmp_env = getenv("SLURM_ARRAY_JOB_ID"); if (tmp_env) - array_job_id = atoi(tmp_env); + array_job_id = strtoul(tmp_env, &end, 10); xmemcat(name, q, p - 1); - xstrfmtcat(name, "%0*d", wid, array_job_id); + xstrfmtcat(name, "%0*u", wid, array_job_id); q = ++p; break;