From 2231f7683114039ed226f3c8dc9b18440612bb7c Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Sat, 26 Mar 2011 02:58:32 +0000
Subject: [PATCH]  Patch #22: Prevents a user from setting negative nice values
 using sbatch #PBS directives.

---
 src/sbatch/opt.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/sbatch/opt.c b/src/sbatch/opt.c
index 83b1711ed6b..c44c37095d7 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;
-- 
GitLab