]> granicus.if.org Git - php/commitdiff
- MFB: Fixed bug #45220 (curl_read callback returns -1 when needs to return size_t...
authorFelipe Pena <felipe@php.net>
Sat, 12 Jul 2008 21:16:50 +0000 (21:16 +0000)
committerFelipe Pena <felipe@php.net>
Sat, 12 Jul 2008 21:16:50 +0000 (21:16 +0000)
ext/curl/interface.c

index 90e75bfa0cacae7a63021e237c492d2986c24293..09b8d4173855ddf169a4f7b87247e7db011cf161 100644 (file)
@@ -786,7 +786,7 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx)
 {
        php_curl       *ch = (php_curl *) ctx;
        php_curl_read  *t  = ch->handlers->read;
-       int             length = -1;
+       int             length = 0;
 
        switch (t->method) {
                case PHP_CURL_DIRECT:
@@ -833,7 +833,9 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx)
                        ch->in_callback = 0;
                        if (error == FAILURE) {
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot call the CURLOPT_READFUNCTION"); 
-                               length = -1;
+#if LIBCURL_VERSION_NUM >= 0x070c01 /* 7.12.1 */
+                               length = CURL_READFUNC_ABORT;
+#endif
                        } else if (retval_ptr) {
                                if (Z_TYPE_P(retval_ptr) == IS_STRING) {
                                        length = MIN(size * nmemb, Z_STRLEN_P(retval_ptr));