rrichards Mon Sep 15 08:29:53 2003 EDT Modified files: /php-src/ext/dom document.c Log: validate encoding against valid handlers Index: php-src/ext/dom/document.c diff -u php-src/ext/dom/document.c:1.24 php-src/ext/dom/document.c:1.25 --- php-src/ext/dom/document.c:1.24 Mon Sep 8 14:28:35 2003 +++ php-src/ext/dom/document.c Mon Sep 15 08:29:52 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: document.c,v 1.24 2003/09/08 18:28:35 rrichards Exp $ */ +/* $Id: document.c,v 1.25 2003/09/15 12:29:52 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -250,15 +250,17 @@ int dom_document_encoding_write(dom_object *obj, zval *newval TSRMLS_DC) { xmlDoc *docp; - int charset; + xmlCharEncodingHandlerPtr handler; docp = (xmlDocPtr) dom_object_get_node(obj); - if (docp->encoding != NULL) { - xmlFree((xmlChar *)docp->encoding); - } - charset = (int)xmlParseCharEncoding((const xmlChar *) Z_STRVAL_P(newval)); - if (charset > 0) { + handler = xmlFindCharEncodingHandler(Z_STRVAL_P(newval)); + + if (handler != NULL) { + xmlCharEncCloseFunc(handler); + if (docp->encoding != NULL) { + xmlFree((xmlChar *)docp->encoding); + } docp->encoding = xmlStrdup((const xmlChar *) Z_STRVAL_P(newval)); return SUCCESS; } else {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php