bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

get_homedir() bug


From: Don Burns
Subject: get_homedir() bug
Date: Fri, 5 Jan 2001 19:33:01 -0800 (PST)

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]