From 8d67b032313f77dbdc3e5bc61da946981ef8a807 Mon Sep 17 00:00:00 2001
From: David Bigagli <david@schedmd.com>
Date: Tue, 6 Jan 2015 14:11:07 -0800
Subject: [PATCH] Fix the size of array_task_id in fname.c from 16 to 32 bit.

---
 src/srun/libsrun/fname.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/srun/libsrun/fname.c b/src/srun/libsrun/fname.c
index 419ccc09559..eda68894250 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;
 
-- 
GitLab