From: Rob Richards Date: Fri, 4 May 2007 20:16:39 +0000 (+0000) Subject: Fix bug #41287 (Namespace functions don't allow xmlns to be optional) X-Git-Tag: php-5.2.3RC1~162 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=78ccf4e0c232fe319c3036d4095b6bcbddd481a0;p=php Fix bug #41287 (Namespace functions don't allow xmlns to be optional) add test --- diff --git a/ext/xmlwriter/php_xmlwriter.c b/ext/xmlwriter/php_xmlwriter.c index ac823b217b..169ae0b1a8 100644 --- a/ext/xmlwriter/php_xmlwriter.c +++ b/ext/xmlwriter/php_xmlwriter.c @@ -566,7 +566,7 @@ static PHP_FUNCTION(xmlwriter_start_attribute_ns) zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss!", &prefix, &prefix_len, &name, &name_len, &uri, &uri_len) == FAILURE) { return; } @@ -574,7 +574,7 @@ static PHP_FUNCTION(xmlwriter_start_attribute_ns) } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsss", &pind, + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsss!", &pind, &prefix, &prefix_len, &name, &name_len, &uri, &uri_len) == FAILURE) { return; } @@ -656,7 +656,7 @@ static PHP_FUNCTION(xmlwriter_write_attribute_ns) zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss!s", &prefix, &prefix_len, &name, &name_len, &uri, &uri_len, &content, &content_len) == FAILURE) { return; } @@ -664,7 +664,7 @@ static PHP_FUNCTION(xmlwriter_write_attribute_ns) } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rssss", &pind, + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsss!s", &pind, &prefix, &prefix_len, &name, &name_len, &uri, &uri_len, &content, &content_len) == FAILURE) { return; } @@ -709,7 +709,7 @@ static PHP_FUNCTION(xmlwriter_start_element_ns) zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!ss", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!ss!", &prefix, &prefix_len, &name, &name_len, &uri, &uri_len) == FAILURE) { return; } @@ -717,7 +717,7 @@ static PHP_FUNCTION(xmlwriter_start_element_ns) } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs!ss", &pind, + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs!ss!", &pind, &prefix, &prefix_len, &name, &name_len, &uri, &uri_len) == FAILURE) { return; } @@ -813,7 +813,7 @@ static PHP_FUNCTION(xmlwriter_write_element_ns) zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!sss", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!ss!s", &prefix, &prefix_len, &name, &name_len, &uri, &uri_len, &content, &content_len) == FAILURE) { return; } @@ -821,7 +821,7 @@ static PHP_FUNCTION(xmlwriter_write_element_ns) } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs!sss", &pind, + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs!ss!s", &pind, &prefix, &prefix_len, &name, &name_len, &uri, &uri_len, &content, &content_len) == FAILURE) { return; } diff --git a/ext/xmlwriter/tests/bug41287.phpt b/ext/xmlwriter/tests/bug41287.phpt new file mode 100644 index 0000000000..106ac3a3ec --- /dev/null +++ b/ext/xmlwriter/tests/bug41287.phpt @@ -0,0 +1,43 @@ +--TEST-- +Bug #41287 (Namespace functions don't allow xmlns defintion to be optional) +--FILE-- +openMemory(); +$xw->setIndent(true); +$xw->startDocument(); +$xw->startElementNS('test', 'test', 'urn:x-test:'); +$xw->writeElementNS('test', 'foo', null, ''); +$xw->writeElementNS(null, 'bar', 'urn:x-test:', ''); +$xw->writeElementNS(null, 'bar', '', ''); +$xw->endElement(); +$xw->endDocument(); +print $xw->flush(true); +?> +--EXPECTF-- + + + + + + + + + + + + +