diff options
| author | John Coggeshall <john@php.net> | 2004-03-12 16:08:11 +0000 |
|---|---|---|
| committer | John Coggeshall <john@php.net> | 2004-03-12 16:08:11 +0000 |
| commit | 2009e4e83bfeb45b050a7dbbf31fddd30f27d744 (patch) | |
| tree | a48364e0247d4a44bf5ae6a4b84a3f6728699452 /ext | |
| parent | ed2b1770ab500fc5c10c693fb4849e57c7f75be1 (diff) | |
| download | php-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')
| -rw-r--r-- | ext/curl/interface.c | 8 |
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]); |
