From 30a46e1135f4d2cfc8d322a0ec3bf9557d93f124 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Wed, 29 Jan 2003 12:52:45 +0000
Subject: [PATCH] John McGowan found a problem where the DEBUGFUNCTION was
 called with bad data on uploads.

---
 lib/transfer.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/lib/transfer.c b/lib/transfer.c
index 413eaeba2f..e8cad9e3ff 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1007,7 +1007,13 @@ CURLcode Curl_readwrite(struct connectdata *conn,
                             &bytes_written);       /* actually send away */
         if(result)
           return result;
-        else if(conn->upload_present != bytes_written) {
+
+        if(data->set.verbose)
+          /* show the data before we change the pointer upload_fromhere */
+          Curl_debug(data, CURLINFO_DATA_OUT, conn->upload_fromhere,
+                     bytes_written);
+      
+        if(conn->upload_present != bytes_written) {
           /* we only wrote a part of the buffer (if anything), deal with it! */
 
           /* store the amount of bytes left in the buffer to write */
@@ -1032,11 +1038,6 @@ CURLcode Curl_readwrite(struct connectdata *conn,
           }
         }
 
-        if(data->set.verbose)
-          Curl_debug(data, CURLINFO_DATA_OUT, conn->upload_fromhere,
-                     bytes_written);
-      
-
         k->writebytecount += bytes_written;
         Curl_pgrsSetUploadCounter(data, (double)k->writebytecount);
 
-- 
GitLab