]> granicus.if.org Git - php/commitdiff
Fixed a crash which happens if your READFUNCTION callback doesn't actually
authorJohn Coggeshall <john@php.net>
Fri, 12 Mar 2004 16:08:11 +0000 (16:08 +0000)
committerJohn Coggeshall <john@php.net>
Fri, 12 Mar 2004 16:08:11 +0000 (16:08 +0000)
return a string as promised.

ext/curl/interface.c

index 9bb17beb120a6d5375586091efea743dc9ed4c9f..2698a81243c7e033962ddd860012f14b35d615b6 100644 (file)
@@ -500,8 +500,12 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx)
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot call the CURLOPT_READFUNCTION"); 
                                length = -1;
                        } else {
-                               memcpy(data, Z_STRVAL_P(retval_ptr), size * nmemb);
-                               length = Z_STRLEN_P(retval_ptr);
+                               if(Z_STRVAL_P(retval_ptr)) {
+                                       memcpy(data, Z_STRVAL_P(retval_ptr), size * nmemb);
+                                       length = Z_STRLEN_P(retval_ptr);
+                               } else {
+                                       data = strdup("");
+                               }
                        }
 
                        zval_ptr_dtor(argv[0]);