]> granicus.if.org Git - curl/commitdiff
Fixed a memory leak and improper shutdown on SFTP post-quote command failure.
authorDan Fandrich <dan@coneharvesters.com>
Wed, 4 Apr 2007 00:46:16 +0000 (00:46 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Wed, 4 Apr 2007 00:46:16 +0000 (00:46 +0000)
lib/ssh.c

index ed4d2790a9023e006bec65f67147e51bbd92773f..bdf68397d6a3c591b818d513feda23fe6c4a65c8 100644 (file)
--- 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 */