From 7d48d851a2d2a810f6acac1e31332737c23ec868 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Wed, 4 Apr 2007 00:46:16 +0000 Subject: [PATCH] Fixed a memory leak and improper shutdown on SFTP post-quote command failure. --- lib/ssh.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/ssh.c b/lib/ssh.c index ed4d2790a..bdf68397d 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -949,6 +949,7 @@ CURLcode Curl_sftp_done(struct connectdata *conn, CURLcode status, bool premature) { struct SSHPROTO *sftp = conn->data->reqdata.proto.ssh; + CURLcode rc = CURLE_OK; (void)premature; /* not used */ Curl_safefree(sftp->path); @@ -959,10 +960,7 @@ CURLcode Curl_sftp_done(struct connectdata *conn, CURLcode status, /* Before we shut down, see if there are any post-quote commands to send: */ if(!status && !premature && conn->data->set.postquote) { - CURLcode result = sftp_sendquote(conn, conn->data->set.postquote); - - if (result != CURLE_OK) - return result; + rc = sftp_sendquote(conn, conn->data->set.postquote); } if (sftp->sftp_handle) { @@ -995,7 +993,7 @@ CURLcode Curl_sftp_done(struct connectdata *conn, CURLcode status, (void)status; /* unused */ - return CURLE_OK; + return rc; } /* return number of received (decrypted) bytes */