public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/slurm] epel10: Patch changes per resolution of upstream bug #4101:
@ 2026-07-22  7:54 Philip Kovacs
  0 siblings, 0 replies; only message in thread
From: Philip Kovacs @ 2026-07-22  7:54 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/slurm
            Branch : epel10
            Commit : f7f253a9a5257dda7dafdb07b7bb89e301d0fa39
            Author : Philip Kovacs <pkdevel@yahoo.com>
            Date   : 2017-10-05T14:22:05-04:00
            Stats  : +104/-60 in 4 file(s)
            URL    : https://src.fedoraproject.org/rpms/slurm/c/f7f253a9a5257dda7dafdb07b7bb89e301d0fa39?branch=epel10

            Log:
            Patch changes per resolution of upstream bug #4101:
salloc/sbatch/srun: must be root to use --uid/--gid options.
salloc: supplemental groups dropped after setuid.

---
diff --git a/slurm.spec b/slurm.spec
index 2613026..58da823 100644
--- a/slurm.spec
+++ b/slurm.spec
@@ -26,7 +26,7 @@
 
 Name:           slurm
 Version:        17.02.7
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        Simple Linux Utility for Resource Management
 License:        GPLv2 and BSD
 URL:            https://slurm.schedmd.com/
@@ -38,16 +38,17 @@ Source4:        slurm-128x128.png
 Source5:        slurm_setuser.in
 
 # upstream bugs #4094, #4095, #4101, #4113
-Patch0:         slurm_salloc_privileges.patch
-Patch1:         slurm_format_truncation.patch
+Patch0:         slurm_opts_restrict.patch
+Patch1:         slurm_salloc_setgroups.patch
+Patch2:         slurm_format_truncation.patch
 
 # build-related patches
-Patch2:         slurm_perlapi_rpaths.patch
-Patch3:         slurm_html_doc_path.patch
-Patch4:         slurm_doc_fix.patch
+Patch3:         slurm_perlapi_rpaths.patch
+Patch4:         slurm_html_doc_path.patch
+Patch5:         slurm_doc_fix.patch
 
 # Fedora-related patches
-Patch5:         slurm_service_files.patch
+Patch6:         slurm_service_files.patch
 
 BuildRequires:  pkgconfig(gtk+-2.0)
 BuildRequires:  hdf5-devel
@@ -219,6 +220,7 @@ Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
+%patch6 -p1
 cp %SOURCE1 etc/slurm.conf
 cp %SOURCE1 etc/slurm.conf.example
 cp %SOURCE2 etc/slurmdbd.conf
@@ -747,6 +749,11 @@ fi
 %systemd_postun_with_restart slurmdbd.service
 
 %changelog
+* Thu Oct 5 2017 Philip Kovacs <pkdevel@yahoo.com> - 17.02.7-4
+- Patch changes per resolution of upstream bug #4101:
+- salloc/sbatch/srun: must be root to use --uid/--gid options.
+- salloc: supplemental groups dropped after setuid.
+
 * Thu Oct 5 2017 Philip Kovacs <pkdevel@yahoo.com> - 17.02.7-3
 - Added BuildRequires gcc and minor packaging conformance items.
 

diff --git a/slurm_opts_restrict.patch b/slurm_opts_restrict.patch
new file mode 100644
index 0000000..ddf6bed
--- /dev/null
+++ b/slurm_opts_restrict.patch
@@ -0,0 +1,72 @@
+--- slurm-17.02.7/src/salloc/opt.c.old	2017-10-05 13:33:36.300529834 -0400
++++ slurm-17.02.7/src/salloc/opt.c	2017-10-05 13:37:02.093162798 -0400
+@@ -1054,6 +1054,10 @@
+ 			}
+ 			break;
+ 		case LONG_OPT_UID:
++			if (getuid() != 0) {
++ 				error("--uid only permitted by root user");
++				exit(error_exit);
++ 			}
+ 			if (opt.euid != (uid_t) -1) {
+ 				error("duplicate --uid option");
+ 				exit(error_exit);
+@@ -1064,6 +1068,10 @@
+ 			}
+ 			break;
+ 		case LONG_OPT_GID:
++			if (getuid() != 0) {
++ 				error("--gid only permitted by root user");
++				exit(error_exit);
++ 			}
+ 			if (opt.egid != (gid_t) -1) {
+ 				error("duplicate --gid option");
+ 				exit(error_exit);
+--- slurm-17.02.7/src/sbatch/opt.c.old	2017-10-05 13:39:04.067419821 -0400
++++ slurm-17.02.7/src/sbatch/opt.c	2017-10-05 13:41:20.388042002 -0400
+@@ -1621,6 +1621,10 @@
+ 			opt.jobid_set = true;
+ 			break;
+ 		case LONG_OPT_UID:
++			if (getuid() != 0) {
++				error("--uid only permitted by root user");
++				exit(error_exit);
++			}
+ 			if (opt.euid != (uid_t) -1) {
+ 				error("duplicate --uid option");
+ 				exit(error_exit);
+@@ -1631,6 +1635,10 @@
+ 			}
+ 			break;
+ 		case LONG_OPT_GID:
++			if (getuid() != 0) {
++				error("--gid only permitted by root user");
++				exit(error_exit);
++			}
+ 			if (opt.egid != (gid_t) -1) {
+ 				error("duplicate --gid option");
+ 				exit(error_exit);
+--- slurm-17.02.7/src/srun/libsrun/opt.c.old	2017-10-05 13:42:57.195643601 -0400
++++ slurm-17.02.7/src/srun/libsrun/opt.c	2017-10-05 13:44:34.753262251 -0400
+@@ -1450,6 +1450,10 @@
+ 				_get_int(optarg, "max-exit-timeout", true);
+ 			break;
+ 		case LONG_OPT_UID:
++			if (getuid() != 0) {
++				error("--uid only permitted by root user");
++				exit(error_exit);
++			}
+ 			if (opt.euid != (uid_t) -1) {
+ 				error("duplicate --uid option");
+ 				exit(error_exit);
+@@ -1460,6 +1464,10 @@
+ 			}
+ 			break;
+ 		case LONG_OPT_GID:
++			if (getuid() != 0) {
++				error("--gid only permitted by root user");
++				exit(error_exit);
++			}
+ 			if (opt.egid != (gid_t) -1) {
+ 				error("duplicate --gid option");
+ 				exit(error_exit);

diff --git a/slurm_salloc_privileges.patch b/slurm_salloc_privileges.patch
deleted file mode 100644
index 3cc2910..0000000
--- a/slurm_salloc_privileges.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- slurm-17.02.7/src/salloc/salloc.c	2017-08-14 13:48:43.000000000 -0400
-+++ slurm-17.02.7/src/salloc/salloc.c.new	2017-08-23 00:07:22.759099425 -0400
-@@ -42,6 +42,7 @@
- 
- #include <dirent.h>
- #include <fcntl.h>
-+#include <grp.h>
- #include <pwd.h>
- #include <stdbool.h>
- #include <stdio.h>
-@@ -298,13 +299,27 @@
- 	if (_fill_job_desc_from_opts(&desc) == -1) {
- 		exit(error_exit);
- 	}
--	if (opt.gid != (gid_t) -1) {
-+
-+	/* If the requested gid is different than ours, become that gid */
-+	if ((getgid() != opt.gid) && (opt.gid != (gid_t) -1)) {
- 		if (setgid(opt.gid) < 0) {
- 			error("setgid: %m");
- 			exit(error_exit);
- 		}
- 	}
- 
-+	/* If the requested uid is different than ours, become that uid */
-+	if ((getuid() != opt.uid) && (opt.uid != (uid_t) -1)) {
-+		if (setgroups(0, NULL) < 0) {
-+			error("setgroups: %m");
-+			exit(error_exit);
-+		}
-+		if (setuid(opt.uid) < 0) {
-+			error("setuid: %m");
-+			exit(error_exit);
-+		}
-+	}
-+
- 	callbacks.ping = _ping_handler;
- 	callbacks.timeout = _timeout_handler;
- 	callbacks.job_complete = _job_complete_handler;
-@@ -333,13 +348,6 @@
- 		sleep (++retries);
- 	}
- 
--	/* become the user after the allocation has been requested. */
--	if (opt.uid != (uid_t) -1) {
--		if (setuid(opt.uid) < 0) {
--			error("setuid: %m");
--			exit(error_exit);
--		}
--	}
- 	if (alloc == NULL) {
- 		if (allocation_interrupted) {
- 			/* cancelled by signal */

diff --git a/slurm_salloc_setgroups.patch b/slurm_salloc_setgroups.patch
new file mode 100644
index 0000000..efb9260
--- /dev/null
+++ b/slurm_salloc_setgroups.patch
@@ -0,0 +1,18 @@
+--- 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);

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-22  7:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-22  7:54 [rpms/slurm] epel10: Patch changes per resolution of upstream bug #4101: Philip Kovacs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox