Ticket #1384: server.c.diff
| File server.c.diff, 0.8 kB (added by iku@…, 12 months ago) |
|---|
-
src/server.c
old new 759 759 760 760 return -1; 761 761 } 762 #ifdef HAVE_PWD_H 763 /* 764 * Change group before chroot, when we have access 765 * to /etc/group 766 * */ 767 if (srv->srvconf.groupname->used) { 768 setgid(grp->gr_gid); 769 setgroups(0, NULL); 770 if (srv->srvconf.username->used) { 771 initgroups(srv->srvconf.username->ptr, grp->gr_gid); 772 } 773 } 774 #endif 762 775 #ifdef HAVE_CHROOT 763 776 if (srv->srvconf.changeroot->used) { 764 777 tzset(); … … 775 788 #endif 776 789 #ifdef HAVE_PWD_H 777 790 /* drop root privs */ 778 if (srv->srvconf.groupname->used) {779 setgid(grp->gr_gid);780 setgroups(0, NULL);781 }782 783 791 if (srv->srvconf.username->used) { 784 if (srv->srvconf.groupname->used) {785 initgroups(srv->srvconf.username->ptr, grp->gr_gid);786 }787 792 setuid(pwd->pw_uid); 788 793 } 789 794 #endif

