diff --git a/src/plugins/sched/wiki2/job_modify.c b/src/plugins/sched/wiki2/job_modify.c index 90558381371c65661c68a478cfa41040376f6166..b1ea1770a4dae09b84e5afba5e3018a9ab0151d6 100644 --- a/src/plugins/sched/wiki2/job_modify.c +++ b/src/plugins/sched/wiki2/job_modify.c @@ -109,6 +109,41 @@ static int _job_modify(uint32_t jobid, char *bank_ptr, return EINVAL; } have_equal = true; + if (env_ptr[i+1] == '\"') { + for (i+=2; ; i++) { + if (env_ptr[i] == '\0') { + error("wiki: setting job %u " + "invalid environment " + "variables: %s", + jobid, env_ptr); + return EINVAL; + } + if (env_ptr[i] == '\"') { + i++; + break; + } + if (env_ptr[i] == '\\') { + i++; + } + } + } else if (env_ptr[i+1] == '\'') { + for (i+=2; ; i++) { + if (env_ptr[i] == '\0') { + error("wiki: setting job %u " + "invalid environment " + "variables: %s", + jobid, env_ptr); + return EINVAL; + } + if (env_ptr[i] == '\'') { + i++; + break; + } + if (env_ptr[i] == '\\') { + i++; + } + } + } } if (isspace(env_ptr[i]) || (env_ptr[i] == ',')) { if (!have_equal) {