NetBSD-Bugs archive

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

Re: bin/55365: cvs(1) mishandles paths to other directories



The following reply was made to PR bin/55365; it has been noted by GNATS.

From: mlelstv%serpens.de@localhost (Michael van Elst)
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: bin/55365: cvs(1) mishandles paths to other directories
Date: Thu, 11 Jun 2020 05:42:34 -0000 (UTC)

 dholland%NetBSD.org@localhost writes:
 
 >RCS file: /cvsroot/src/sys/kern/vfs_vnops.c,v
 >RCS file: /cvsroot/src/sys/sys/vnode.h,v
 
 >% cvs diff ../sys/vnode.h vfs_vnops.c
 >Index: ../sys/vnode.h
 >===================================================================
 >RCS file: /cvsroot/src/sys/sys/vnode.h,v
 >retrieving revision 1.292
 >diff -r1.292 vnode.h
 >597a598
 >> abc
 >cvs diff: cannot find revision control file for vfs_vnops.c
 
 
 A trace of the CVS server shows that while it opens the first file
 
 /cvsroot/src/sys/sys/vnode.h,v
 
 it tries to look at the second file in the wrong directory:
 
 /cvsroot/vfs_vnops.c,v
 
 
 cvs -t shows that the server uses the wrong directory for vfs_vnops.c
 
   -> main: Session ID is 0VJFIGTWwtdwqLbC
   -> main loop with CVSROOT=/cvsroot
   -> open_connection_to_server (:ext:mlelstv%cvs.netbsd.org@localhost/cvsroot)
  -> Starting server: ssh -l mlelstv -- cvs.netbsd.org cvs server 
 S -> serve_directory (../sys)
 S -> dirswitch (../sys, /cvsroot/src/sys/sys)
 S -> serve_directory (.)
 S -> dirswitch (., /cvsroot/src/sys/kern)
 S -> serve_directory (.)
 S -> dirswitch (., /cvsroot/)
 S -> do_cvs_command (diff)
 S -> server_notify()
 S -> server_pathname_check (../sys/vnode.h)
 S -> server_pathname_check (vfs_vnops.c)
 
 S -> Reader_Lock(/cvsroot/src/sys/sys)
 S -> time_stamp_server (vnode.h, 1.296, =, (null))
 S -> diff_file_nodiff (../sys/vnode.h, 3)
 S -> Simple_Lock_Cleanup()
 
 S -> rename(CVS/Entries.Backup,CVS/Entries)
 S -> unlink_file(CVS/Entries.Log)
 
 S -> Reader_Lock(/cvsroot)                                <----------
 S -> time_stamp_server (vfs_vnops.c, 1.212, =, (null))
 cvs diff: cannot find revision control file for vfs_vnops.c
 S -> Simple_Lock_Cleanup()
 
   -> close_connection_to_server ()
 S -> Lock_Cleanup()
 S -> Simple_Lock_Cleanup()
 S -> server_cleanup()
 
 
 The client sends the commands
 
 UseUnchanged
 Command-prep diff
 Global_option -t
 Argument --
 Max-dotdot 1
 Directory ../sys
 src/sys/sys
 Entry /vnode.h/1.296///
 Unchanged vnode.h
 Directory .
 src/sys/kern
 Entry /vfs_vnops.c/1.212///
 Unchanged vfs_vnops.c
 Directory .
 Argument ../sys/vnode.h
 Argument vfs_vnops.c
 diff
 
 So that looks like a server-side bug.
 
 
 -- 
 -- 
                                 Michael van Elst
 Internet: mlelstv%serpens.de@localhost
                                 "A potential Snark may lurk in every tree."
 


Home | Main Index | Thread Index | Old Index