summaryrefslogtreecommitdiff
path: root/ext/curl
diff options
context:
space:
mode:
authorJohn Coggeshall <john@php.net>2004-03-12 16:08:11 +0000
committerJohn Coggeshall <john@php.net>2004-03-12 16:08:11 +0000
commit2009e4e83bfeb45b050a7dbbf31fddd30f27d744 (patch)
treea48364e0247d4a44bf5ae6a4b84a3f6728699452 /ext/curl
parented2b1770ab500fc5c10c693fb4849e57c7f75be1 (diff)
downloadphp-git-2009e4e83bfeb45b050a7dbbf31fddd30f27d744.tar.gz
Fixed a crash which happens if your READFUNCTION callback doesn't actually
return a string as promised.
Diffstat (limited to 'ext/curl')
-rw-r--r--ext/curl/interface.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 9bb17beb12..2698a81243 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -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]);