]> 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:20:10 +0000 (21:20 +0000)
committerFelipe Pena <felipe@php.net>
Sat, 12 Jul 2008 21:20:10 +0000 (21:20 +0000)
ext/curl/interface.c

index b2f3cbeb35d3ec309c4b79853b877f3f054c1395..f06e5e83e3d1b25ac07c3f4ec9f4c49e1008d5e6 100644 (file)
@@ -785,7 +785,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:
@@ -832,7 +832,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));