From 31401582c28f730b1a1d288ae9243d54c4219e70 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Fri, 24 Oct 2014 11:27:38 -0700 Subject: [PATCH] Ignore Allow/DenyQOS in part if QOS not configured Previous logic would fail an assert --- src/slurmctld/read_config.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c index 38501b195d6..4e9d0617f04 100644 --- a/src/slurmctld/read_config.c +++ b/src/slurmctld/read_config.c @@ -582,6 +582,7 @@ extern void qos_list_build(char *qos, bitstr_t **qos_bits) char *tmp_qos, *one_qos_name, *name_ptr = NULL; slurmdb_qos_rec_t qos_rec, *qos_ptr = NULL; bitstr_t *tmp_qos_bitstr; + int rc; if (!qos) { FREE_NULL_BITMAP(*qos_bits); @@ -595,13 +596,14 @@ extern void qos_list_build(char *qos, bitstr_t **qos_bits) while (one_qos_name) { memset(&qos_rec, 0, sizeof(slurmdb_qos_rec_t)); qos_rec.name = one_qos_name; - if (assoc_mgr_fill_in_qos(acct_db_conn, &qos_rec, - accounting_enforce, - &qos_ptr) == SLURM_SUCCESS) { - bit_set(tmp_qos_bitstr, qos_rec.id); - } else { - error("Ignoring invalid Allow/DenyQOS value %s", + rc = assoc_mgr_fill_in_qos(acct_db_conn, &qos_rec, + accounting_enforce, + &qos_ptr); + if ((rc != SLURM_SUCCESS) || (qos_rec.id >= g_qos_count)) { + error("Ignoring invalid Allow/DenyQOS value: %s", one_qos_name); + } else { + bit_set(tmp_qos_bitstr, qos_rec.id); } one_qos_name = strtok_r(NULL, ",", &name_ptr); } -- GitLab