>Submitter-Id: net >Originator: Keith Zaback >Organization: net >Confidential: no >Synopsis: Receive "Cannot create_adm_p" and "Permission denied" error when using >remote repository >Severity: serious >Priority: low >Category: cvs >Class: sw-bug >Release: cvs-1.11 >Environment: System: Linux kanuka.confusatron.org 2.2.13 #4 SMP Thu Oct 28 14:52:58 CDT 1999 i586 unknown Architecture: i586 >Description: Here is my repository setup $ ls -l /home drwxrwxr-x 5 root root 4096 Apr 4 17:04 cvs/ $ ls -l /home/cvs drwxrwxr-x 2 root root 4096 Apr 9 20:45 CVSROOT/ drwxr-xr-x 2 krz krz 4096 Apr 9 20:02 project1/ drwxr-xr-x 6 krz krz 4096 Apr 9 22:30 project2/ I (user krz) own the project1 and project2 directories, but root owns /home/cvs. Everything works great, except remote repostiory commands. When using a remote repository, the "cvs server" process creates a /tmp/cvs-serv{pid} directory, then starts populating that directory with the CVS admin directory ("CVS") and other sub-directories of the project. Then in "server.c" line 417, it looks for a file "/tmp/cvs-serv{pid}/{subdirectory}/CVS/Repository" and if that is not a file, it tries to create "/home/CVS/CVSROOT/EmptyDir" which my user (krz) does not have permission to create. Therefore, nothing works :) >How-To-Repeat: The description contains the information needed to test/repeat this. >Fix: I could work around this problem by giving my user (krz) permissions to create directories inside of /home/cvs/CVSROOT. Instead, I made a small patch to have it create the EmpryDir at: "/tmp/cvs-serv{pid}/{subdirectory}/CVS/EmptyDir" which seems to work for me. --- server.c Fri Jul 28 15:18:40 2000 +++ server.c.new Mon Apr 9 23:04:24 2001 @@ -420,8 +420,8 @@ differently. */ char *empty; - empty = malloc (strlen (CVSroot_directory) - + sizeof (CVSROOTADM) + empty = malloc (strlen (dir_where_cvsadm_lives) + + sizeof (CVSADM) + sizeof (CVSNULLREPOS) + 10); if (! empty) @@ -431,8 +431,8 @@ } /* Create the directory name. */ - (void) sprintf (empty, "%s/%s/%s", CVSroot_directory, - CVSROOTADM, CVSNULLREPOS); + (void) sprintf (empty, "%s/%s/%s", dir_where_cvsadm_lives, + CVSADM, CVSNULLREPOS); /* Create the directory if it doesn't exist. */ if (! isfile (empty)) _______________________________________________ Bug-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-cvs