| --- a/src/svr-chansession.c |
| +++ b/src/svr-chansession.c |
| @@ -984,12 +984,12 @@ static void execchild(const void *user_d |
| /* We can only change uid/gid as root ... */ |
| if (getuid() == 0) { |
| |
| - if ((setgid(ses.authstate.pw_gid) < 0) || |
| + if ((ses.authstate.pw_gid != 0) && ((setgid(ses.authstate.pw_gid) < 0) || |
| (initgroups(ses.authstate.pw_name, |
| - ses.authstate.pw_gid) < 0)) { |
| + ses.authstate.pw_gid) < 0))) { |
| dropbear_exit("Error changing user group"); |
| } |
| - if (setuid(ses.authstate.pw_uid) < 0) { |
| + if ((ses.authstate.pw_uid != 0) && (setuid(ses.authstate.pw_uid) < 0)) { |
| dropbear_exit("Error changing user"); |
| } |
| } else { |