diff options
author | Daniel Stenberg <daniel@haxx.se> | 2016-09-09 15:57:44 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2016-09-11 12:02:07 +0200 |
commit | a8e751a51a53c59e832c8351a1356763fa5766c4 (patch) | |
tree | 22ab86256ed8eadd0699880d063fda2ac3c8ddfa /lib | |
parent | d58682f28bfbbfafcd2dd939bd4f944db2bef0c0 (diff) |
http: refuse to pass on response body with NO_NODY was set
... like when a HTTP/0.9 response comes back without any headers at all
and just a body this now prevents that body from being sent to the
callback etc.
Adapted test 1144 to verify.
Fixes #973
Assisted-by: Ray Satiro
Diffstat (limited to 'lib')
-rw-r--r-- | lib/transfer.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 2fad6f32f..24bdf2155 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -535,6 +535,13 @@ static CURLcode readwrite_data(struct Curl_easy *data, is non-headers. */ if(k->str && !k->header && (nread > 0 || is_empty_data)) { + if(data->set.opt_no_body) { + /* data arrives although we want none, bail out */ + streamclose(conn, "ignoring body"); + *done = TRUE; + return CURLE_WEIRD_SERVER_REPLY; + } + #ifndef CURL_DISABLE_HTTP if(0 == k->bodywrites && !is_empty_data) { /* These checks are only made the first time we are about to |