110-change_user.patch 696 B

1234567891011121314151617181920212223
  1. --- a/src/svr-auth.c
  2. +++ b/src/svr-auth.c
  3. @@ -510,9 +510,9 @@ void svr_switch_user(void) {
  4. /* We can only change uid/gid as root ... */
  5. if (getuid() == 0) {
  6. - if ((setgid(ses.authstate.pw_gid) < 0) ||
  7. + if ((ses.authstate.pw_gid != 0) && ((setgid(ses.authstate.pw_gid) < 0) ||
  8. (initgroups(ses.authstate.pw_name,
  9. - ses.authstate.pw_gid) < 0)) {
  10. + ses.authstate.pw_gid) < 0))) {
  11. dropbear_exit("Error changing user group");
  12. }
  13. @@ -534,7 +534,7 @@ void svr_switch_user(void) {
  14. }
  15. #endif
  16. - if (setuid(ses.authstate.pw_uid) < 0) {
  17. + if ((ses.authstate.pw_uid != 0) && (setuid(ses.authstate.pw_uid) < 0)) {
  18. dropbear_exit("Error changing user");
  19. }
  20. } else {