The 1.11.1 version will not create an initial copy of the .cvspass file.

The problem is in password_entry_operation in the CVS_FOPEN with "r".  When
the file does not exist the routine errors out.

A reasonable solution seems to be to CVS_FOPEN "a+" which will open
read/write and create the file if it does not exist.   (The downside is a
rewind if the CVS_FOPEN succeeds).


 <<login.txt>> 


*************************************************************************** 
This electronic mail transmission contains confidential and/or privileged 
information intended only for the person(s) named.  Any use, distribution, 
copying or disclosure by another person is strictly prohibited. 
*************************************************************************** 


Index: cvs/src/login.c
diff -c cvs/src/login.c:1.1 cvs/src/login.c:1.2
*** cvs/src/login.c:1.1 Fri Jun  1 12:41:38 2001
--- cvs/src/login.c     Mon Jun  4 13:57:34 2001
***************
*** 319,330 ****
       */
  
      passfile = construct_cvspass_filename ();
!     fp = CVS_FOPEN (passfile, "r");
      if (fp == NULL)
      {
!       error (0, errno, "failed to open %s for reading", passfile);
        goto error_exit;
      }
  
      cvsroot_canonical = normalize_cvsroot (root);
  
--- 319,332 ----
       */
  
      passfile = construct_cvspass_filename ();
!     fp = CVS_FOPEN (passfile, "a+");
      if (fp == NULL)
      {
!       error (0, errno, "failed to open %s for read/append", passfile);
        goto error_exit;
      }
+     else
+       rewind(fp);
  
      cvsroot_canonical = normalize_cvsroot (root);
  

Reply via email to