curl-library
RE: Probable bug in ftp_readresp()
Date: Mon, 24 Aug 2009 13:16:13 +0200 (CEST)
On Fri, 21 Aug 2009, Patrick Monnerat wrote:
> I tried to change ftp.c lines 447-448:
>
> if (CURLE_OK != res)
>  keepon = FALSE;
>
> into:
>
> if (CURLE_OK != res) {
>  result = res;
>  keepon = FALSE;
> }
>
> and it seems to do the job, but I'm not sure it does not break something 
> else.
I think that sounds like a fine fix. If it unbreaks your breakage, please 
commit!
It could even remove the assignment in the block just above it, like this:
--- lib/ftp.c   11 Aug 2009 20:43:12 -0000      1.526
+++ lib/ftp.c   24 Aug 2009 11:15:28 -0000
@@ -439,13 +439,15 @@
  #ifdef CURL_DOES_CONVERSIONS
        if((res == CURLE_OK) && (gotbytes > 0)) {
          /* convert from the network encoding */
-        result = res = Curl_convert_from_network(data, ptr, gotbytes);
+        res = Curl_convert_from_network(data, ptr, gotbytes);
          /* Curl_convert_from_network calls failf if unsuccessful */
        }
  #endif /* CURL_DOES_CONVERSIONS */
-      if(CURLE_OK != res)
+      if(CURLE_OK != res) {
+        result = res; /* set the outer result variable to this error */
          keepon = FALSE;
+      }
      }
      if(!keepon)
-- / daniel.haxx.seReceived on 2009-08-24