X-Git-Url: https://git.jankratochvil.net/?a=blobdiff_plain;f=src%2Fpserverchroot.c;h=2ce5dd7404c524fad0c912d3e1515fd0487c39eb;hb=89ca70a15a92676350073237f862e90b567430d5;hp=ca7920178bb2d800fc9657ae01f44f649ee9c9cf;hpb=898603a3682e43440679461e4fd494fa9873aaba;p=nethome.git diff --git a/src/pserverchroot.c b/src/pserverchroot.c index ca79201..2ce5dd7 100644 --- a/src/pserverchroot.c +++ b/src/pserverchroot.c @@ -4,12 +4,10 @@ #include #include -extern const char **environ; - -#define SETUID 613 /* "pserver" user UID */ -#define SETGID 613 /* "pserver" group GID */ -#define PERMITTED_ENV_LIST "PWD" +#define SETUID 503 /* "pserver" user UID */ +#define SETGID 503 /* "pserver" group GID */ +#define CHROOT_DIR "/home/lace/pserver" #define EXEC_PATHNAME "/usr/bin/cvs" @@ -43,26 +41,9 @@ static void funcfail(const char *funcname) int main(int argc,char **argv) { -int total=0; -const char *allowed[]={ PERMITTED_ENV_LIST }; -const char **allp,**envp; -char *dup=NULL,*s; - -retry: - for (envp=environ;*envp;envp++) { - if (dup) free(dup); - dup=strdup(*envp); - if ((s=strchr(dup,'='))) *s='\0'; - for (allp=allowed;allp1000) - EXITLOG("Unable to clean environment for CVS pserver: %s",*envp); - unsetenv(dup); - goto retry; -ok:; - } + FUNCCHK(clearenv); FUNCCHK(setenv,"PATH","/usr/bin",1); - FUNCCHK(chroot,"/home/short/pserver"); + FUNCCHK(chroot,CHROOT_DIR); FUNCCHK(chdir,"/"); FUNCCHK(setgid,SETGID); FUNCCHK(setuid,SETUID);