diff --git a/src/sbatch/opt.c b/src/sbatch/opt.c index 83b1711ed6b9a4d9c87dc144fa348398bb66fb2e..c44c37095d719e0ce04f8825dd09313fe7f51209 100644 --- a/src/sbatch/opt.c +++ b/src/sbatch/opt.c @@ -1756,6 +1756,15 @@ static void _set_pbs_options(int argc, char **argv) "-%d and %d", NICE_OFFSET, NICE_OFFSET); exit(error_exit); } + if (opt.nice < 0) { + uid_t my_uid = getuid(); + if ((my_uid != 0) && + (my_uid != slurm_get_slurm_user_id())) { + error("Nice value must be " + "non-negative, value ignored"); + opt.nice = 0; + } + } break; case 'q': xfree(opt.partition); @@ -1976,6 +1985,15 @@ static void _parse_pbs_resource_list(char *rl) "-%d and %d", NICE_OFFSET, NICE_OFFSET); exit(error_exit); } + if (opt.nice < 0) { + uid_t my_uid = getuid(); + if ((my_uid != 0) && + (my_uid != slurm_get_slurm_user_id())) { + error("Nice value must be " + "non-negative, value ignored"); + opt.nice = 0; + } + } xfree(temp); } else if(!strncmp(rl+i, "nodes=", 6)) { i+=6;