cvs: php-src(PHP_5_2) /ext/tidy tidy.c /ext/tidy/tests 029.phpt

From: Date: Thu, 20 Sep 2007 22:25:06 +0000
Subject: cvs: php-src(PHP_5_2) /ext/tidy tidy.c /ext/tidy/tests 029.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-46250@lists.php.net to get a copy of this message
nlopess Thu Sep 20 22:25:06 2007 UTC Added files: (Branch: PHP_5_2) /php-src/ext/tidy/tests 029.phpt Modified files: /php-src/ext/tidy tidy.c Log: fix crash when fetching a node type that doesnt exist # reported in a manual user note http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tidy.c?r1=1.66.2.8.2.23&r2=1.66.2.8.2.24&diff_format=u Index: php-src/ext/tidy/tidy.c diff -u php-src/ext/tidy/tidy.c:1.66.2.8.2.23 php-src/ext/tidy/tidy.c:1.66.2.8.2.24 --- php-src/ext/tidy/tidy.c:1.66.2.8.2.23 Fri May 4 17:11:05 2007 +++ php-src/ext/tidy/tidy.c Thu Sep 20 22:25:05 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: tidy.c,v 1.66.2.8.2.23 2007/05/04 17:11:05 nlopess Exp $ */ +/* $Id: tidy.c,v 1.66.2.8.2.24 2007/09/20 22:25:05 nlopess Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -870,35 +870,41 @@ return NULL; } -static void php_tidy_create_node(INTERNAL_FUNCTION_PARAMETERS, tidy_base_nodetypes node) +static void php_tidy_create_node(INTERNAL_FUNCTION_PARAMETERS, tidy_base_nodetypes node_type) { PHPTidyObj *newobj; + TidyNode node; TIDY_FETCH_OBJECT; - tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); - newobj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); - newobj->type = is_node; - newobj->ptdoc = obj->ptdoc; - newobj->ptdoc->ref_count++; - - switch(node) { + switch (node_type) { case is_root_node: - newobj->node = tidyGetRoot(newobj->ptdoc->doc); + node = tidyGetRoot(obj->ptdoc->doc); break; case is_html_node: - newobj->node = tidyGetHtml(newobj->ptdoc->doc); + node = tidyGetHtml(obj->ptdoc->doc); break; case is_head_node: - newobj->node = tidyGetHead(newobj->ptdoc->doc); + node = tidyGetHead(obj->ptdoc->doc); break; case is_body_node: - newobj->node = tidyGetBody(newobj->ptdoc->doc); + node = tidyGetBody(obj->ptdoc->doc); break; } + if (!node) { + RETURN_NULL(); + } + + tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); + newobj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); + newobj->type = is_node; + newobj->ptdoc = obj->ptdoc; + newobj->node = node; + newobj->ptdoc->ref_count++; + tidy_add_default_properties(newobj, is_node TSRMLS_CC); } @@ -992,7 +998,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.66.2.8.2.23 2007/05/04 17:11:05 nlopess Exp $)"); + php_info_print_table_row(2, "Extension Version", PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.66.2.8.2.24 2007/09/20 22:25:05 nlopess Exp $)"); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/029.phpt?view=markup&rev=1.1 Index: php-src/ext/tidy/tests/029.phpt +++ php-src/ext/tidy/tests/029.phpt

« previous php.cvs (#46250) next »