From 11952c2f38f290c4511b2ce59b06fc808070dadf Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Mon, 21 Nov 2005 21:28:59 +0000
Subject: [PATCH] Correct logic for authentication of srun --attach processing
 in slurmd.

---
 src/slurmd/slurmd/req.c     | 1 +
 src/slurmd/slurmstepd/req.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index 3cae24ef322..d6cf24a7458 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -1057,6 +1057,7 @@ _rpc_reattach_tasks(slurm_msg_t *msg, slurm_addr *cli)
 		goto done2;
 	} 
 
+	req_uid = g_slurm_auth_get_uid(msg->cred);
 	if ((req_uid != step->uid) && (!_slurm_authorized_user(req_uid))) {
 		error("uid %ld attempt to attach to job %u.%u owned by %ld",
 		      (long) req_uid, req->job_id, req->job_step_id,
diff --git a/src/slurmd/slurmstepd/req.c b/src/slurmd/slurmstepd/req.c
index b62e5b8c982..180896e1bdc 100644
--- a/src/slurmd/slurmstepd/req.c
+++ b/src/slurmd/slurmstepd/req.c
@@ -621,7 +621,7 @@ _handle_attach(int fd, slurmd_job_t *job, uid_t uid)
 		goto done;
 	}
 
-	if (!_slurm_authorized_user(uid)) {
+	if ((uid != job->uid) && !_slurm_authorized_user(uid)) {
 		error("uid %ld attempt to attach to job %u.%u owned by %ld",
 		      (long) uid, job->jobid, job->stepid, (long)job->uid);
 		rc = EPERM;
-- 
GitLab