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

index f832d5bbd5593e6a4adf78f60f98b1f2b844c42e..e5e5d122ecfa3bbe852bb7bb61e6b19d9b8c6e5f 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));