]> granicus.if.org Git - php/commitdiff
fix tidy problems caused by returning local static buffers
authorAntony Dovgal <tony2001@php.net>
Wed, 30 Aug 2006 22:52:18 +0000 (22:52 +0000)
committerAntony Dovgal <tony2001@php.net>
Wed, 30 Aug 2006 22:52:18 +0000 (22:52 +0000)
looks like somebody forgot to MFB this patch..

ext/tidy/tidy.c

index 1addb08b8092801781ae8458cd251ed4a669aab2..5b4c2b5cd429d1731409b680f24a7706b69269bf 100644 (file)
@@ -490,7 +490,8 @@ static void php_tidy_quick_repair(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_fil
 
                                tidySaveBuffer (doc, &output);
                                FIX_BUFFER(&output);
-                               RETVAL_STRINGL((char *) output.bp, output.size-1, 0);
+                               RETVAL_STRINGL((char *) output.bp, output.size-1, 1);
+                               tidyBufFree(&output);
                        } else {
                                RETVAL_FALSE;
                        }
@@ -661,7 +662,8 @@ static int tidy_doc_cast_handler(zval *in, zval *out, int type TSRMLS_DC)
                case IS_STRING:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in TSRMLS_CC);
                        tidySaveBuffer (obj->ptdoc->doc, &output);
-                       ZVAL_STRINGL(out, (char *) output.bp, output.size, 0);
+                       ZVAL_STRINGL(out, (char *) output.bp, output.size, 1);
+                       tidyBufFree(&output);
                        break;
 
                default:
@@ -712,10 +714,12 @@ static void tidy_doc_update_properties(PHPTidyObj *obj TSRMLS_DC)
        
        if (output.size) {
                MAKE_STD_ZVAL(temp);
-               ZVAL_STRINGL(temp, (char *) output.bp, output.size, 0);
+               ZVAL_STRINGL(temp, (char *) output.bp, output.size, 1);
                zend_hash_update(obj->std.properties, "value", sizeof("value"), (void *)&temp, sizeof(zval *), NULL);
        }
 
+       tidyBufFree(&output);
+
        if (obj->ptdoc->errbuf->size) {
                MAKE_STD_ZVAL(temp);
                ZVAL_STRINGL(temp, (char *) obj->ptdoc->errbuf->bp, obj->ptdoc->errbuf->size-1, TRUE);
@@ -1035,7 +1039,8 @@ static PHP_FUNCTION(ob_tidyhandler)
 
                        tidySaveBuffer(doc, &output);
                        FIX_BUFFER(&output);
-                       RETVAL_STRINGL((char *) output.bp, output.size-1, 0);
+                       RETVAL_STRINGL((char *) output.bp, output.size-1, 1);
+                       tidyBufFree(&output);
                }
        } else {
                RETVAL_NULL();
@@ -1098,7 +1103,8 @@ static PHP_FUNCTION(tidy_get_output)
 
        tidySaveBuffer(obj->ptdoc->doc, &output);
        FIX_BUFFER(&output);
-       RETVAL_STRINGL((char *) output.bp, output.size-1, 0);
+       RETVAL_STRINGL((char *) output.bp, output.size-1, 1);
+       tidyBufFree(&output);
 }
 /* }}} */