summaryrefslogtreecommitdiff
path: root/ext/curl/curl.c
diff options
context:
space:
mode:
authorSterling Hughes <sterling@php.net>2001-12-24 13:58:03 +0000
committerSterling Hughes <sterling@php.net>2001-12-24 13:58:03 +0000
commit85fa03aab3fff4b84928a6fcb55067d51e82f2e8 (patch)
tree5d245b1d35290e7c8a53405fac55cb8dd7e027a2 /ext/curl/curl.c
parent30b526bf7877d33038b0f28d4ec9cd5349cf79d5 (diff)
downloadphp-git-85fa03aab3fff4b84928a6fcb55067d51e82f2e8.tar.gz
Avoid a segfault when 0 bytes are returned from a website, and RETURNTRANSFER is enabled.
Diffstat (limited to 'ext/curl/curl.c')
-rw-r--r--ext/curl/curl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/curl/curl.c b/ext/curl/curl.c
index a67d0b2480..783ee20689 100644
--- a/ext/curl/curl.c
+++ b/ext/curl/curl.c
@@ -890,13 +890,13 @@ PHP_FUNCTION(curl_exec)
error = curl_easy_perform(ch->cp);
if (error != CURLE_OK) {
- if (ch->handlers->write->buf.c)
+ if (ch->handlers->write->buf.len > 0)
smart_str_free(&ch->handlers->write->buf);
SAVE_CURL_ERROR(ch, error);
RETURN_FALSE;
}
- if (ch->handlers->write->method == PHP_CURL_RETURN) {
+ if (ch->handlers->write->method == PHP_CURL_RETURN && ch->handlers->write->buf.len > 0) {
if (ch->handlers->write->type != PHP_CURL_BINARY)
smart_str_0(&ch->handlers->write->buf);
RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 0);