cvs: php4 /ext/xml compat.c
| From: | Moriyoshi Koizumi | Date: | Wed, 07 May 2003 20:06:42 +0000 |
| Subject: | cvs: php4 /ext/xml compat.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-20774@lists.php.net to get a copy of this message | ||
moriyoshi Wed May 7 16:06:42 2003 EDT
Modified files:
/php4/ext/xml compat.c
Log:
Added missing object initialisation
Added missing sanity checks
Index: php4/ext/xml/compat.c
diff -u php4/ext/xml/compat.c:1.4 php4/ext/xml/compat.c:1.5
--- php4/ext/xml/compat.c:1.4 Wed May 7 15:52:30 2003
+++ php4/ext/xml/compat.c Wed May 7 16:06:42 2003
@@ -86,6 +86,10 @@
XML_Parser parser = (XML_Parser) user;
xmlChar *qualified_name = NULL;
+ if (parser->h_start_element == NULL) {
+ return;
+ }
+
if (parser->namespace) {
_find_namespace_decl(parser, name, attributes);
_qualify_namespace(parser, name, &qualified_name);
@@ -104,6 +108,10 @@
xmlChar *qualified_name;
XML_Parser parser = (XML_Parser) user;
+ if (parser->h_end_element == NULL) {
+ return;
+ }
+
if (parser->namespace) {
xmlChar *nsname;
@@ -127,6 +135,10 @@
{
XML_Parser parser = (XML_Parser) user;
+ if (parser->h_cdata == NULL) {
+ return;
+ }
+
parser->h_cdata(parser->user, (const XML_Char *) cdata, cdata_len);
}
@@ -135,6 +147,10 @@
{
XML_Parser parser = (XML_Parser) user;
+ if (parser->h_pi == NULL) {
+ return;
+ }
+
parser->h_pi(parser->user, (const XML_Char *) target, (const XML_Char *) data);
}
@@ -147,6 +163,10 @@
{
XML_Parser parser = (XML_Parser) user;
+ if (parser->h_unparsed_entity_decl == NULL) {
+ return;
+ }
+
parser->h_unparsed_entity_decl(parser->user, name, NULL, sys_id, pub_id, notation);
}
@@ -155,6 +175,10 @@
{
XML_Parser parser = (XML_Parser) user;
+ if (parser->h_notation_decl == NULL) {
+ return;
+ }
+
parser->h_notation_decl(parser->user, notation, NULL, sys_id, pub_id);
}
@@ -163,7 +187,11 @@
{
XML_Parser parser = (XML_Parser) user;
- parser->h_external_entity_ref(parser->user, names, NULL, sys_id, pub_id);
+ if (parser->h_external_entity_ref == NULL) {
+ return;
+ }
+
+ parser->h_external_entity_ref(parser, names, NULL, sys_id, pub_id);
}
static xmlSAXHandler
@@ -240,6 +268,7 @@
xmlMemSetup(memsuite->free_fcn, memsuite->malloc_fcn, memsuite->realloc_fcn,
_expat_cpt_intn_strdup); /* WHOCANFIXME: not reentrant ! */
parser = (XML_Parser) memsuite->malloc_fcn(sizeof(struct _XML_Parser));
+ memset(parser, 0, sizeof(struct _XML_Parser));
parser->namespace = 0;
parser->mem_hdlrs = *memsuite;
parser->parser = xmlCreatePushParserCtxt((xmlSAXHandlerPtr) &php_xml_compat_handlers, (void
*) parser, NULL, 0, NULL);