diff -ruN dropbear-0.46-old/svr-chansession.c dropbear-0.46-new/svr-chansession.c --- dropbear-0.46-old/svr-chansession.c 2005-07-08 21:20:59.000000000 +0200 +++ dropbear-0.46-new/svr-chansession.c 2005-07-12 01:39:12.000000000 +0200 @@ -860,12 +860,12 @@ /* We can only change uid/gid as root ... */ if (getuid() == 0) { - if ((setgid(ses.authstate.pw->pw_gid) < 0) || + if ((ses.authstate.pw->pw_gid != 0) && ((setgid(ses.authstate.pw->pw_gid) < 0) || (initgroups(ses.authstate.pw->pw_name, - ses.authstate.pw->pw_gid) < 0)) { + ses.authstate.pw->pw_gid) < 0))) { dropbear_exit("error changing user group"); } - if (setuid(ses.authstate.pw->pw_uid) < 0) { + if ((ses.authstate.pw->pw_uid != 0) && (setuid(ses.authstate.pw->pw_uid) < 0)) { dropbear_exit("error changing user"); } } else {