- markus@cvs.openbsd.org 2002/02/24 16:57:19
     [sftp-client.c]
     early close(), missing free; ok stevesk@
diff --git a/ChangeLog b/ChangeLog
index 0559297..6a755c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -29,6 +29,9 @@
    - stevesk@cvs.openbsd.org 2002/02/24 16:09:52
      [sshd.c]
      use u_char* here; ok markus@
+   - markus@cvs.openbsd.org 2002/02/24 16:57:19
+     [sftp-client.c]
+     early close(), missing free; ok stevesk@
 
 20020225
  - (bal) Last AIX patch.  Moved aix_usrinfo() outside of do_setuserconext()
@@ -7702,4 +7705,4 @@
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.1881 2002/02/26 18:00:48 mouring Exp $
+$Id: ChangeLog,v 1.1882 2002/02/26 18:02:43 mouring Exp $
diff --git a/sftp-client.c b/sftp-client.c
index 481341c..17ac14a 100644
--- a/sftp-client.c
+++ b/sftp-client.c
@@ -28,7 +28,7 @@
 /* XXX: copy between two remote sites */
 
 #include "includes.h"
-RCSID("$OpenBSD: sftp-client.c,v 1.23 2002/02/13 00:59:23 djm Exp $");
+RCSID("$OpenBSD: sftp-client.c,v 1.24 2002/02/24 16:57:19 markus Exp $");
 
 #if defined(HAVE_SYS_QUEUE_H) && !defined(HAVE_BOGUS_SYS_QUEUE_H)
 #include <sys/queue.h>
@@ -799,7 +799,6 @@
 	handle = get_handle(conn->fd_in, id, &handle_len);
 	if (handle == NULL) {
 		buffer_free(&msg);
-		close(local_fd);
 		return(-1);
 	}
 
@@ -807,6 +806,8 @@
 	if (local_fd == -1) {
 		error("Couldn't open local file \"%s\" for writing: %s",
 		    local_path, strerror(errno));
+		buffer_free(&msg);
+		xfree(handle);
 		return(-1);
 	}