diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-05-30 00:45:54 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-05-30 11:39:42 +0200 |
commit | e54db1b053614ce5d332b5eea673ab370843e65b (patch) | |
tree | 2e5a0291ee958309a64cd5586263f7cac9eecc34 /lib/http.c | |
parent | 35682764a9dc7eb0fed3fbb1c0074f1c34dd60b2 (diff) | |
download | curl-e54db1b053614ce5d332b5eea673ab370843e65b.tar.gz |
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
Diffstat (limited to 'lib/http.c')
-rw-r--r-- | lib/http.c | 11 |
1 files changed, 3 insertions, 8 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 |