summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2007-02-23 20:51:02 +0000
committerAntony Dovgal <tony2001@php.net>2007-02-23 20:51:02 +0000
commitfa513e74ce154ff7c694a56cf7d5ae2beabd3b0d (patch)
treefd3d8247e3053e7f0db00e89fc62611cb3313026
parent9d3e446d80e3bb6c53d8a1cadd5a7c837fe929ee (diff)
downloadphp-git-fa513e74ce154ff7c694a56cf7d5ae2beabd3b0d.tar.gz
MFH: fix leak
-rw-r--r--ext/curl/interface.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 2759c6d1aa..424c98012e 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -715,7 +715,9 @@ static size_t curl_write(char *data, size_t size, size_t nmemb, void *ctx)
case PHP_CURL_FILE:
return fwrite(data, size, nmemb, t->fp);
case PHP_CURL_RETURN:
- smart_str_appendl(&t->buf, data, (int) length);
+ if (length > 0) {
+ smart_str_appendl(&t->buf, data, (int) length);
+ }
break;
case PHP_CURL_USER: {
zval **argv[2];
@@ -854,7 +856,7 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx
case PHP_CURL_STDOUT:
/* Handle special case write when we're returning the entire transfer
*/
- if (ch->handlers->write->method == PHP_CURL_RETURN) {
+ if (ch->handlers->write->method == PHP_CURL_RETURN && length > 0) {
smart_str_appendl(&ch->handlers->write->buf, data, (int) length);
} else {
PHPWRITE(data, length);