From 8d811201d4deaf80f8b5bef9513511f6775a1eb8 Mon Sep 17 00:00:00 2001
From: David Bigagli <david@schedmd.com>
Date: Mon, 23 Mar 2015 13:19:20 -0700
Subject: [PATCH] Fix _parse_array_tok.

---
 NEWS                    |  2 ++
 src/slurmctld/job_mgr.c | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/NEWS b/NEWS
index 6e073c12707..a56226318bd 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,8 @@ documents those changes that are of interest to users and administrators.
  -- RequeueExit and RequeueExitHold configuration parameters modified to accept
     numeric ranges. For example "RequeueExit=1,2,3,4" and "RequeueExit=1-4" are
     equivalent.
+ -- Correct the job array specification parser to accept [x-y] format when
+    operating on job arrays.
 
 * Changes in Slurm 14.11.5
 ==========================
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index c7d037609c4..f342a33b5ba 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5651,6 +5651,26 @@ static bool _parse_array_tok(char *tok, bitstr_t *array_bitmap, uint32_t max)
 {
 	char *end_ptr = NULL;
 	int i, first, last, step = 1;
+	char *p;
+
+	/* Strip []
+	 */
+	i = 0;
+	p = tok;
+	while (*tok) {
+		if (*tok == '['
+		    || *tok == ']') {
+			*tok = ' ';
+			++i;
+			++tok;
+		}
+		++tok;
+	}
+	tok = p;
+	if (i) {
+		++tok;
+		tok[strlen(tok) - 1] = 0;
+	}
 
 	first = strtol(tok, &end_ptr, 10);
 	if (first < 0)
-- 
GitLab