From f60ace9f29b8582ffe64b046f9179fb2b4518c58 Mon Sep 17 00:00:00 2001 From: mouring Date: Tue, 26 Feb 2002 18:02:43 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2002/02/24 16:57:19 [sftp-client.c] early close(), missing free; ok stevesk@ --- ChangeLog | 3 +++ sftp-client.c | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index bc2515b1..3c601737 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() diff --git a/sftp-client.c b/sftp-client.c index 481341c6..17ac14a9 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 @@ -799,7 +799,6 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path, handle = get_handle(conn->fd_in, id, &handle_len); if (handle == NULL) { buffer_free(&msg); - close(local_fd); return(-1); } @@ -807,6 +806,8 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path, 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); } -- 2.45.1