]> granicus.if.org Git - php/commitdiff
Avoid a segfault when 0 bytes are returned from a website, and RETURNTRANSFER is...
authorSterling Hughes <sterling@php.net>
Mon, 24 Dec 2001 13:58:03 +0000 (13:58 +0000)
committerSterling Hughes <sterling@php.net>
Mon, 24 Dec 2001 13:58:03 +0000 (13:58 +0000)
ext/curl/curl.c

index a67d0b2480fdd6b7b31c719ab9bceb6e53b6db1c..783ee20689582c9684e0ed325db7105b964754b4 100644 (file)
@@ -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);