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