Blob Blame History Raw
--- slurm-17.02.7/src/salloc/salloc.c.old	2017-10-05 13:25:52.403682572 -0400
+++ slurm-17.02.7/src/salloc/salloc.c	2017-10-05 13:29:52.913975815 -0400
@@ -333,8 +333,13 @@
 		sleep (++retries);
 	}
 
-	/* become the user after the allocation has been requested. */
-	if (opt.uid != (uid_t) -1) {
+	/* If the requested uid is different than ours, become that uid */
+	if ((getuid() != opt.uid) && (opt.uid != (uid_t) -1)) {
+		/* drop extended groups before changing uid/gid */
+		if ((setgroups(0, NULL) < 0)) {
+			error("setgroups: %m");
+			exit(error_exit);
+		}
 		if (setuid(opt.uid) < 0) {
 			error("setuid: %m");
 			exit(error_exit);