gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 181/254: transfer: init the infilesize from the pos


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 181/254: transfer: init the infilesize from the postfields...
Date: Sat, 17 Jun 2017 16:53:33 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to annotated tag gnurl-7.54.1
in repository gnurl.

commit e54db1b053614ce5d332b5eea673ab370843e65b
Author: Daniel Stenberg <address@hidden>
AuthorDate: Tue May 30 00:45:54 2017 +0200

    transfer: init the infilesize from the postfields...
    
    ... with a strlen() if no size was set, and do this in the pretransfer
    function so that the info is set early. Otherwise, the default strlen()
    done on the POSTFIELDS data never sets state.infilesize.
    
    Reported-by: Vincas Razma
    Bug: #1294
---
 lib/http.c     | 11 +++--------
 lib/transfer.c |  5 ++++-
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/lib/http.c b/lib/http.c
index 8e7fb0fa9..21574e21d 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -419,8 +419,6 @@ static CURLcode http_perhapsrewind(struct connectdata *conn)
     case HTTPREQ_POST:
       if(data->state.infilesize != -1)
         expectsend = data->state.infilesize;
-      else if(data->set.postfields)
-        expectsend = (curl_off_t)strlen(data->set.postfields);
       break;
     case HTTPREQ_PUT:
       if(data->state.infilesize != -1)
@@ -2559,12 +2557,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
 
     if(conn->bits.authneg)
       postsize = 0;
-    else {
-      /* figure out the size of the postfields */
-      postsize = (data->state.infilesize != -1)?
-        data->state.infilesize:
-        (data->set.postfields? (curl_off_t)strlen(data->set.postfields):-1);
-    }
+    else
+      /* the size of the post body */
+      postsize = data->state.infilesize;
 
     /* We only set Content-Length and allow a custom Content-Length if
        we don't upload data chunked, as RFC2616 forbids us to set both
diff --git a/lib/transfer.c b/lib/transfer.c
index 799fd4da8..43e8f64aa 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1309,8 +1309,11 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
 
   if(data->set.httpreq == HTTPREQ_PUT)
     data->state.infilesize = data->set.filesize;
-  else
+  else {
     data->state.infilesize = data->set.postfieldsize;
+    if(data->set.postfields && (data->state.infilesize == -1))
+      data->state.infilesize = (curl_off_t)strlen(data->set.postfields);
+  }
 
   /* If there is a list of cookie files to read, do it now! */
   if(data->change.cookielist)

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]