diff options
Diffstat (limited to 'ext/dom/document.c')
-rw-r--r-- | ext/dom/document.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/ext/dom/document.c b/ext/dom/document.c index 95b077b648..235323e1d7 100644 --- a/ext/dom/document.c +++ b/ext/dom/document.c @@ -338,6 +338,9 @@ int dom_document_encoding_write(dom_object *obj, zval *newval) } str = zval_get_string(newval); + if (EG(exception)) { + return FAILURE; + } handler = xmlFindCharEncodingHandler(Z_STRVAL_P(newval)); @@ -431,12 +434,15 @@ int dom_document_version_write(dom_object *obj, zval *newval) return FAILURE; } + str = zval_get_string(newval); + if (EG(exception)) { + return FAILURE; + } + if (docp->version != NULL) { xmlFree((xmlChar *) docp->version ); } - str = zval_get_string(newval); - docp->version = xmlStrdup((const xmlChar *) ZSTR_VAL(str)); zend_string_release_ex(str, 0); @@ -659,12 +665,15 @@ int dom_document_document_uri_write(dom_object *obj, zval *newval) return FAILURE; } + str = zval_get_string(newval); + if (EG(exception)) { + return FAILURE; + } + if (docp->URL != NULL) { xmlFree((xmlChar *) docp->URL); } - str = zval_get_string(newval); - docp->URL = xmlStrdup((const xmlChar *) ZSTR_VAL(str)); zend_string_release_ex(str, 0); |