diff --git a/src/slurmd/slurmstepd/multi_prog.c b/src/slurmd/slurmstepd/multi_prog.c index bac3f920436e84417af9e8900ba7f3a5fcee6169..b7ee990fc26b48b5bbb7769b5fc098edb6dda51c 100644 --- a/src/slurmd/slurmstepd/multi_prog.c +++ b/src/slurmd/slurmstepd/multi_prog.c @@ -455,7 +455,9 @@ extern void multi_prog_parse(stepd_step_rec_t *job, uint32_t **gtid) job->mpmd_set->command[j] = xstrdup(tmp_cmd[i]); job->mpmd_set->start_pe[j] = i; job->mpmd_set->total_pe[j]++; - } else if (!strcmp(tmp_cmd[i-1], tmp_cmd[i]) && + } else if (tmp_cmd[i-1] && tmp_cmd[i] && + tmp_args[i-1] && tmp_args[i] && + !strcmp(tmp_cmd[i-1], tmp_cmd[i]) && !strcmp(tmp_args[i-1], tmp_args[i]) && !strchr(tmp_args[i-1], '%')) { if ((ranks_node_id[i] == job->nodeid) &&