From a8785cf71955edac8e54c09287bfb97ffcf760c4 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Fri, 27 May 2005 16:34:57 +0000
Subject: [PATCH] Seperate out exit errors from setgid()/initgroups(), and
 errors from setuid(), to make debugging a bit easier

--HG--
extra : convert_revision : ea1f23ab2f94d0416e0bac38f63c9850396184c4
---
 svr-chansession.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/svr-chansession.c b/svr-chansession.c
index 90c82a70..a040a47b 100644
--- a/svr-chansession.c
+++ b/svr-chansession.c
@@ -862,8 +862,10 @@ static void execchild(struct ChanSess *chansess) {
 
 		if ((setgid(ses.authstate.pw->pw_gid) < 0) ||
 			(initgroups(ses.authstate.pw->pw_name, 
-						ses.authstate.pw->pw_gid) < 0) ||
-			(setuid(ses.authstate.pw->pw_uid) < 0)) {
+						ses.authstate.pw->pw_gid) < 0)) {
+			dropbear_exit("error changing user group");
+		}
+		if (setuid(ses.authstate.pw->pw_uid) < 0) {
 			dropbear_exit("error changing user");
 		}
 	} else {
-- 
GitLab