--- rinetd.c.orig Sun Nov 18 17:49:30 2001 +++ rinetd.c Sun Nov 18 18:05:55 2001 @@ -223,6 +223,9 @@ int main(int argc, char *argv[]) { + const int uid=65534; + const int gid=65534; + WSADATA wsaData; int result = WSAStartup(MAKEWORD(1, 1), &wsaData); if (result != 0) { @@ -247,6 +250,22 @@ initArrays(); readConfiguration(); RegisterPID(); + if (chroot("/var/rinetd-chroot") != 0) { + printf("Failed setting new root dir.\n"); + exit(1); + } + if (chdir("/") != 0) { + printf("Failed changing dir.\n"); + exit(1); + } + if (setgid(gid) != 0) { + printf("Failed setting GID.\n"); + exit(1); + } + if (setuid(uid) != 0) { + printf("Failed setting UID.\n"); + exit(1); + } selectLoop(); #ifndef WIN32 #ifndef DEBUG