You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by dg...@hyperreal.org on 1998/06/04 22:28:32 UTC

cvs commit: apache-1.3/src/support htpasswd.c

dgaudet     98/06/04 13:28:31

  Modified:    src      CHANGES
               src/support htpasswd.c
  Log:
  remove the system() call...
  
  PR:		2332
  Submitted by:	"M.D.Parker" <md...@netcom.com>
  
  Revision  Changes    Path
  1.886     +3 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.885
  retrieving revision 1.886
  diff -u -r1.885 -r1.886
  --- CHANGES	1998/06/04 20:13:11	1.885
  +++ CHANGES	1998/06/04 20:28:29	1.886
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.1
   
  +  *) Remove the system() call from htpasswd.c, which eliminates a system
  +     dependancy.  ["M.D.Parker" <md...@netcom.com>] PR#2332
  +
     *) PORT: Fix compilation failures on NEXTSTEP.
        [Rex Dieter <rd...@math.unl.edu>] PR#2293, 2316
   
  
  
  
  1.16      +13 -9     apache-1.3/src/support/htpasswd.c
  
  Index: htpasswd.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/support/htpasswd.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- htpasswd.c	1998/04/21 20:14:06	1.15
  +++ htpasswd.c	1998/06/04 20:28:31	1.16
  @@ -161,7 +161,7 @@
       if (argc == 4) {
   	if (strcmp(argv[1], "-c"))
   	    usage();
  -	if (!(tfp = fopen(argv[2], "w"))) {
  +      if (!(tfp = fopen(argv[2], "w+"))) {
   	    fprintf(stderr, "Could not open passwd file %s for writing.\n",
   		    argv[2]);
   	    perror("fopen");
  @@ -176,12 +176,12 @@
   	usage();
   
       tn = tmpnam(NULL);
  -    if (!(tfp = fopen(tn, "w"))) {
  +    if (!(tfp = fopen(tn, "w+"))) {
   	fprintf(stderr, "Could not open temp file.\n");
   	exit(1);
       }
   
  -    if (!(f = fopen(argv[1], "r"))) {
  +    if (!(f = fopen(argv[1], "r+"))) {
   	fprintf(stderr,
   		"Could not open passwd file %s for reading.\n", argv[1]);
   	fprintf(stderr, "Use -c option to create new one.\n");
  @@ -211,14 +211,18 @@
   	printf("Adding user %s\n", user);
   	add_password(user, tfp);
       }
  +/*
  +* make a copy from the tmp file to the actual file
  +*/  
  +        rewind(f);
  +        rewind(tfp);
  +        while ( fgets(command,MAX_STRING_LEN,tfp) != NULL)
  +        {
  +                fputs(command,f);
  +        } 
  +
       fclose(f);
       fclose(tfp);
  -#if defined(__EMX__) || defined(WIN32)
  -    sprintf(command, "copy \"%s\" \"%s\"", tn, argv[1]);
  -#else
  -    sprintf(command, "cp %s %s", tn, argv[1]);
  -#endif
  -    system(command);
       unlink(tn);
       exit(0);
   }