From da910f23b79b4d6bcec535a8240e2cc24ece391d Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Fri, 19 Jul 2013 10:05:27 -0700 Subject: [PATCH] gres/gpu fix for bad configuration Avoid referencing memory out of bounds when setting CUDA_VISIBLE_DEVICES if FastSchedule=2 is configured AND the node has fewer GPUs configured in gres.conf than in slurm.conf AND those GPUs have specific associated files --- src/plugins/gres/gpu/gres_gpu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/gres/gpu/gres_gpu.c b/src/plugins/gres/gpu/gres_gpu.c index 631740d70e4..c75c6ee2443 100644 --- a/src/plugins/gres/gpu/gres_gpu.c +++ b/src/plugins/gres/gpu/gres_gpu.c @@ -233,7 +233,8 @@ extern void job_set_env(char ***job_env_ptr, void *gres_ptr) dev_list = xmalloc(128); else xstrcat(dev_list, ","); - if (gpu_devices && (gpu_devices[i] >= 0)) + if (gpu_devices && (i < nb_available_files) && + (gpu_devices[i] >= 0)) xstrfmtcat(dev_list, "%d", gpu_devices[i]); else xstrfmtcat(dev_list, "%d", i); @@ -276,7 +277,8 @@ extern void step_set_env(char ***job_env_ptr, void *gres_ptr) dev_list = xmalloc(128); else xstrcat(dev_list, ","); - if (gpu_devices && (gpu_devices[i] >= 0)) + if (gpu_devices && (i < nb_available_files) && + (gpu_devices[i] >= 0)) xstrfmtcat(dev_list, "%d", gpu_devices[i]); else xstrfmtcat(dev_list, "%d", i); -- GitLab