]> granicus.if.org Git - php/commitdiff
MFH: fix leak
authorAntony Dovgal <tony2001@php.net>
Fri, 23 Feb 2007 20:51:02 +0000 (20:51 +0000)
committerAntony Dovgal <tony2001@php.net>
Fri, 23 Feb 2007 20:51:02 +0000 (20:51 +0000)
ext/curl/interface.c

index 2759c6d1aa2919d889942e945342f946efbb06ca..424c98012e074bfa99a812e4b330fff0be3ab0ca 100644 (file)
@@ -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);