This is my first posting to bug-cvs and I'm not even sure if I have to
join the mailing list to do so... 

I've recently set up a CVS repository and attempted to enable pserver
access.  I came across an error that is mentioned in the manual
Troubleshooting section.  It reads :

----------------
If you seem to be connecting but get errors like: 

      
      cvs server: cannot open /root/.cvsignore: Permission denied
      cvs [server aborted]: can't chdir(/root): Permission denied



     then either you haven't specified `-f' in `inetd.conf' or your system
is setting the HOME environment variable for programs being run
     by inetd. In the latter case, you can either have inetd run a shell
script that unsets HOME and then runs CVS, or you can use env to run CVS
     with a pristine environment. 
---------------

I fixed the problem in, what seems to be a simpler way.  In the CVS
source, file filesubr.c, function get_homedir() I simply commented out:

    /*
    if (home != NULL)
        return home;
    */

The manual instructs to set up pserver access through inetd, running cvs
as root.  However, cvs does a setuid() at some point before attempting to
access $HOME/.cvsignore.  The above fix simply forces get_homedir() to
update the value of home everytime it is called, and therefore returns
different (and correct) values after calling setuid().

-don


_______________________________________________
Bug-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-cvs

Reply via email to