nlopess         Fri Jan 19 18:57:06 2007 UTC

  Modified files:              
    /php-src/ext/tidy   tidy.c 
  Log:
  MFB: fix segfaults with new libtidy
  
http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tidy.c?r1=1.107&r2=1.108&diff_format=u
Index: php-src/ext/tidy/tidy.c
diff -u php-src/ext/tidy/tidy.c:1.107 php-src/ext/tidy/tidy.c:1.108
--- php-src/ext/tidy/tidy.c:1.107       Mon Jan  1 09:29:33 2007
+++ php-src/ext/tidy/tidy.c     Fri Jan 19 18:57:06 2007
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: tidy.c,v 1.107 2007/01/01 09:29:33 sebastian Exp $ */
+/* $Id: tidy.c,v 1.108 2007/01/19 18:57:06 nlopess Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -511,8 +511,8 @@
        }
        
        if (data) {
-               TidyBuffer buf = {0};
-               
+               TidyBuffer buf;
+
                tidyBufInit(&buf);
                tidyBufAttach(&buf, (byte *) data, data_len);
                
@@ -521,7 +521,8 @@
                        RETVAL_FALSE;
                } else {
                        if (tidyCleanAndRepair(doc) >= 0) {
-                               TidyBuffer output = {0};
+                               TidyBuffer output;
+                               tidyBufInit(&output);
 
                                tidySaveBuffer (doc, &output);
                                FIX_BUFFER(&output);
@@ -669,7 +670,7 @@
 
 static int tidy_doc_cast_handler(zval *in, zval *out, int type, void *extra 
TSRMLS_DC)
 {
-       TidyBuffer output = {0};
+       TidyBuffer output;
        PHPTidyObj *obj;
 
        switch(type) {
@@ -687,6 +688,7 @@
 
                case IS_STRING:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in 
TSRMLS_CC);
+                       tidyBufInit(&output);
                        tidySaveBuffer (obj->ptdoc->doc, &output);
                        ZVAL_STRINGL(out, (char *) output.bp, output.size, 1);
                        tidyBufFree(&output);
@@ -708,7 +710,7 @@
 
 static int tidy_node_cast_handler(zval *in, zval *out, int type, void *extra 
TSRMLS_DC)
 {
-       TidyBuffer buf = {0};
+       TidyBuffer buf;
        PHPTidyObj *obj;
 
        switch(type) {
@@ -726,6 +728,7 @@
 
                case IS_STRING:
                        obj = (PHPTidyObj *)zend_object_store_get_object(in 
TSRMLS_CC);
+                       tidyBufInit(&buf);
                        tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
                        ZVAL_STRINGL(out, (char *) buf.bp, buf.size, 0);
                        break;
@@ -745,9 +748,10 @@
 
 static void tidy_doc_update_properties(PHPTidyObj *obj TSRMLS_DC)
 {
-       TidyBuffer output = {0};
+       TidyBuffer output;
        zval *temp;
 
+       tidyBufInit(&output);
        tidySaveBuffer (obj->ptdoc->doc, &output);
 
        if (output.size) {
@@ -781,8 +785,7 @@
        switch(type) {
 
                case is_node:
-
-                       memset(&buf, 0, sizeof(buf));
+                       tidyBufInit(&buf);
                        tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
                        ADD_PROPERTY_STRINGL(obj->converter->conv, 
obj->std.properties, value, buf.bp, buf.size-1);
                        tidyBufFree(&buf);
@@ -854,9 +857,6 @@
                        ADD_PROPERTY_NULL(obj->std.properties, errorBuffer);
                        ADD_PROPERTY_NULL(obj->std.properties, value);
                        break;
-
-               default:
-                       break;
        }
 }
 
@@ -965,7 +965,7 @@
 
 static int php_tidy_parse_string(PHPTidyObj *obj, char *string, int len, char 
*enc TSRMLS_DC)
 {
-       TidyBuffer buf = {0};
+       TidyBuffer buf;
        UErrorCode Uerror = U_ZERO_ERROR;
 
        if(enc) {
@@ -1040,7 +1040,7 @@
        php_info_print_table_start();
        php_info_print_table_header(2, "Tidy support", "enabled");
        php_info_print_table_row(2, "libTidy Release", (char 
*)tidyReleaseDate());
-       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.107 2007/01/01 09:29:33 sebastian 
Exp $)");
+       php_info_print_table_row(2, "Extension Version", 
PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.108 2007/01/19 18:57:06 nlopess Exp 
$)");
        php_info_print_table_end();
 
        DISPLAY_INI_ENTRIES();
@@ -1119,7 +1119,7 @@
 {
        int status = FAILURE;
        TidyDoc doc;
-       TidyBuffer inbuf = {0}, outbuf = {0}, errbuf = {0};
+       TidyBuffer inbuf, outbuf, errbuf;
        PHP_OUTPUT_TSRMLS(output_context);
        
        if (TG(clean_output) && (output_context->op & PHP_OUTPUT_HANDLER_START) 
&& (output_context->op & PHP_OUTPUT_HANDLER_FINAL)) {
@@ -1210,9 +1210,10 @@
    Return a string representing the parsed tidy markup */
 static PHP_FUNCTION(tidy_get_output)
 {
-       TidyBuffer output = {0};
+       TidyBuffer output;
        TIDY_FETCH_OBJECT;
 
+       tidyBufInit(&output);
        tidySaveBuffer(obj->ptdoc->doc, &output);
        FIX_BUFFER(&output);
        RETVAL_U_STRINGL(obj->converter->conv, (char *) output.bp, 
output.size-1, 1);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to