diff -c -r version-2.0.0-patch01/bbftpc/treatcommand.c version-2.0.0-patch03/bbftpc/treatcommand.c
*** version-2.0.0-patch01/bbftpc/treatcommand.c	Wed Mar 28 17:21:19 2001
--- version-2.0.0-patch03/bbftpc/treatcommand.c	Fri Apr 20 14:57:06 2001
***************
*** 5,10 ****
--- 5,11 ----
    
    
   treatcommand.c v 2.0.0    2001/03/01  - Creation of the routine
+                 v 2.0.1    2001/04/17  - Correct put bug
  
  
  *****************************************************************************/
***************
*** 386,392 ****
                              free(dupbuffercmd) ;
                              return -1 ;
                          }
!                         if ( (localfilename = (char *) malloc (strlen(action)+1)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","localfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
--- 387,393 ----
                              free(dupbuffercmd) ;
                              return -1 ;
                          }
!                         if ( (localfilename = (char *) malloc (strlen(startfn)+1)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","localfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
***************
*** 505,511 ****
                              free(dupbuffercmd) ;
                              return -1 ;
                          }
!                         if ( (remotefilename = (char *) malloc (strlen(action)+1)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","localfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
--- 506,512 ----
                              free(dupbuffercmd) ;
                              return -1 ;
                          }
!                         if ( (remotefilename = (char *) malloc (strlen(startfn)+1)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","localfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
***************
*** 612,632 ****
                          /*
                          ** two names
                          */
!                         if ( (remotefilename = (char *) malloc (strlen(action)+1)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","remotefilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
-                             free(remotefilename) ;
                              return -1 ;
                          }
!                         if ( (curfilename = (char *) malloc (strlen(startfn)+1) ) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","curfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
                              free(remotefilename) ;
                              return -1 ;
                          }
!                         if ( (realfilename = (char *) malloc (strlen(startfn)+11)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","realfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
--- 613,632 ----
                          /*
                          ** two names
                          */
!                         if ( (remotefilename = (char *) malloc (strlen(startfn)+1)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","remotefilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
                              return -1 ;
                          }
!                         if ( (curfilename = (char *) malloc (strlen(action)+1) ) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","curfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
                              free(remotefilename) ;
                              return -1 ;
                          }
!                         if ( (realfilename = (char *) malloc (strlen(action)+11)) == NULL ) {
  	                        printmessage(stderr,CASE_ERROR,35,timestamp,"Error allocating memory for %s : %s\n","realfilename",strerror(errno)) ;
                              myexitcode = 35 ;
                              free(dupbuffercmd) ;
diff -c -r version-2.0.0-patch01/bbftpd/retr_rfio_v2.c version-2.0.0-patch03/bbftpd/retr_rfio_v2.c
*** version-2.0.0-patch01/bbftpd/retr_rfio_v2.c	Wed Mar 28 15:51:36 2001
--- version-2.0.0-patch03/bbftpd/retr_rfio_v2.c	Fri Apr 20 15:00:25 2001
***************
*** 6,11 ****
--- 6,12 ----
   Routines : int retrcheckfile_rfio(char *filename,char *logmessage)
   
   retr_rfio_v2.c v 2.0.0 2001/02/22   - Routines creation
+                 v 2.0.1 2001/04/17   - Realy wait STARTCHILDTO 
  			   
  *****************************************************************************/
  #include <errno.h>
***************
*** 248,259 ****
  			** child to die before father has started all children
  			*/
              waitedtime = 0 ;
! 			while (flagsighup == 0 && waitedtime < 1000*STARTCHILDTO) {
! 				wait_timer.tv_sec  = 0 ;
! 				wait_timer.tv_usec = 1000 ;
  				nfds = sysconf(_SC_OPEN_MAX) ;
  				select(nfds,0,0,0,&wait_timer) ;
!                 waitedtime = waitedtime + 1000 ;
  			}
              syslog(LOG_ERR,"Child %d starting",getpid()) ;
  			/*
--- 249,260 ----
  			** child to die before father has started all children
  			*/
              waitedtime = 0 ;
! 			while (flagsighup == 0 && waitedtime < STARTCHILDTO) {
! 				wait_timer.tv_sec  = 1 ;
! 				wait_timer.tv_usec = 0 ;
  				nfds = sysconf(_SC_OPEN_MAX) ;
  				select(nfds,0,0,0,&wait_timer) ;
!                 waitedtime = waitedtime + 1 ;
  			}
              syslog(LOG_ERR,"Child %d starting",getpid()) ;
  			/*
diff -c -r version-2.0.0-patch01/bbftpd/retr_v2.c version-2.0.0-patch03/bbftpd/retr_v2.c
*** version-2.0.0-patch01/bbftpd/retr_v2.c	Wed Mar 28 11:18:03 2001
--- version-2.0.0-patch03/bbftpd/retr_v2.c	Fri Apr 20 14:59:46 2001
***************
*** 6,11 ****
--- 6,12 ----
   Routines : int retrcheckfile(char *filename,char *logmessage)
   
   retr_v2.c v 2.0.0 2001/02/22   - Routines creation
+            v 2.0.1 2001/04/17   - Realy wait STARTCHILDTO 
  			   
  *****************************************************************************/
  #include <errno.h>
***************
*** 265,276 ****
  			** child to die before father has started all children
  			*/
              waitedtime = 0 ;
! 			while (flagsighup == 0 && waitedtime < 1000*STARTCHILDTO) {
! 				wait_timer.tv_sec  = 0 ;
! 				wait_timer.tv_usec = 1000 ;
  				nfds = sysconf(_SC_OPEN_MAX) ;
  				select(nfds,0,0,0,&wait_timer) ;
!                 waitedtime = waitedtime + 1000 ;
  			}
              syslog(LOG_ERR,"Child %d starting",getpid()) ;
  			/*
--- 266,277 ----
  			** child to die before father has started all children
  			*/
              waitedtime = 0 ;
! 			while (flagsighup == 0 && waitedtime < STARTCHILDTO) {
! 				wait_timer.tv_sec  = 1 ;
! 				wait_timer.tv_usec = 0 ;
  				nfds = sysconf(_SC_OPEN_MAX) ;
  				select(nfds,0,0,0,&wait_timer) ;
!                 waitedtime = waitedtime + 1 ;
  			}
              syslog(LOG_ERR,"Child %d starting",getpid()) ;
  			/*
diff -c -r version-2.0.0-patch01/includes/version.h version-2.0.0-patch03/includes/version.h
*** version-2.0.0-patch01/includes/version.h	Fri Apr 20 15:16:16 2001
--- version-2.0.0-patch03/includes/version.h	Fri Apr 20 15:04:39 2001
***************
*** 9,13 ****
  
  *****************************************************************************/
  
! #define VERSION	            "2.0.0-patch01"
  #define PROTOCOLVERSION     2
--- 9,13 ----
  
  *****************************************************************************/
  
! #define VERSION	            "2.0.0-patch03"
  #define PROTOCOLVERSION     2