Actions:
|
2010-03-18 18:06 AEST by Arthur Barrett - This code in update appears to be unix specific:
static int update_dirleave_proc (void *callerdat, char *dir, int err, char
*update_dir, List *entries)
{
.
.
.
if (strchr (dir, '/') == NULL)
{
/* FIXME: chdir ("..") loses with symlinks. */
/* Prune empty dirs on the way out - if necessary */
(void) CVS_CHDIR ("..");
if (update_prune_dirs && isemptydir (dir, noexec))
A look at the trace show that windows PATHs (dir) never contain '/':
10:21:04: S -> isemptydir(MoreStuff,0) cwd=C:\WINDOWS\TEMP\cvs-serv1988
.
.
.
10:21:04: S -> update_dirleave_proc(.,0,.) cwd=C:\WINDOWS\TEMP\cvs-serv1988
10:21:04: S -> isemptydir(.,0) cwd=C:\WINDOWS\TEMP
So the code tries to CHDIR into c:\WINDOWS\TEMP and then enumerate the files
which windows does not allow unpriveleged users to do.
I believe the client ALSO tries to prune empty directories so the bug is not
apparent to users until they get 'cannot chdir to' warnings. |