pajoye Mon May 25 16:27:46 2009 UTC
Modified files: (Branch: PHP_5_2)
/php-src/ext/xmlwriter php_xmlwriter.c
/php-src/ext/xmlwriter/tests xmlwriter_open_uri_error_003.phpt
xmlwriter_open_uri_error_004.phpt
xmlwriter_open_uri_error_005.phpt
Log:
- MFH: #48202, Out of memory error when passing non-existing filename, enable
related tests (marked as XFAIL now)
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/php_xmlwriter.c?r1=1.20.2.12.2.21&r2=1.20.2.12.2.22&diff_format=u
Index: php-src/ext/xmlwriter/php_xmlwriter.c
diff -u php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.12.2.21
php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.12.2.22
--- php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.12.2.21 Mon May 11
12:35:00 2009
+++ php-src/ext/xmlwriter/php_xmlwriter.c Mon May 25 16:27:45 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_xmlwriter.c,v 1.20.2.12.2.21 2009/05/11 12:35:00 iliaa Exp $ */
+/* $Id: php_xmlwriter.c,v 1.20.2.12.2.22 2009/05/25 16:27:45 pajoye Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -310,7 +310,10 @@
if (uri->scheme != NULL) {
/* absolute file uris - libxml only supports localhost or empty
host */
- if (strncasecmp(source, "file:///",8) == 0) {
+ if (strncasecmp(source, "file:///", 8) == 0) {
+ if (source[sizeof("file:///") - 1] == '\0') {
+ return NULL;
+ }
isFileUri = 1;
#ifdef PHP_WIN32
source += 8;
@@ -318,6 +321,10 @@
source += 7;
#endif
} else if (strncasecmp(source, "file://localhost/",17) == 0) {
+ if (source[sizeof("file://localhost/") - 1] == '\0') {
+ return NULL;
+ }
+
isFileUri = 1;
#ifdef PHP_WIN32
source += 17;
@@ -330,11 +337,28 @@
file_dest = source;
if ((uri->scheme == NULL || isFileUri)) {
+ char file_dirname[MAXPATHLEN];
+ size_t dir_len;
+
if (!VCWD_REALPATH(source, resolved_path) &&
!expand_filepath(source, resolved_path TSRMLS_CC)) {
xmlFreeURI(uri);
return NULL;
}
+
+ memcpy(file_dirname, source, strlen(source));
+ dir_len = php_dirname(file_dirname, strlen(source));
+
+ if (dir_len > 0) {
+ struct stat buf;
+ if (php_sys_stat(file_dirname, &buf) != 0) {
+ xmlFreeURI(uri);
+ return NULL;
+ }
+ }
+
file_dest = resolved_path;
+ } else {
+ file_dest = source;
}
xmlFreeURI(uri);
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt
diff -u php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt:1.1.4.2
php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt:1.1.4.3
--- php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt:1.1.4.2
Sat May 16 15:14:25 2009
+++ php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt Mon May
25 16:27:45 2009
@@ -10,9 +10,7 @@
Koen Kuipers [email protected]
Theo van der Zee
#Test Fest Utrecht 09-05-2009
---XFAIL--
-Getting error: xmlNewTextWriterFilename : out of memory!
--EXPECTF--
-Warning: xmlwriter_open_uri(%s): failed to open stream: No such file or
directory in %s on line %d
+Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d
bool(false)
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt
diff -u php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt:1.1.4.2
php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt:1.1.4.3
--- php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt:1.1.4.2
Sat May 16 15:14:25 2009
+++ php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt Mon May
25 16:27:45 2009
@@ -10,9 +10,7 @@
Koen Kuipers [email protected]
Theo van der Zee
#Test Fest Utrecht 09-05-2009
---XFAIL--
-Getting error: xmlNewTextWriterFilename : out of memory!
--EXPECTF--
-Warning: xmlwriter_open_uri(/): failed to open stream: Is a directory in %s on
line %d
+Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d
bool(false)
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u
Index: php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt
diff -u php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt:1.1.4.2
php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt:1.1.4.3
--- php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt:1.1.4.2
Sat May 16 15:14:25 2009
+++ php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt Mon May
25 16:27:45 2009
@@ -10,9 +10,7 @@
Koen Kuipers [email protected]
Theo van der Zee
#Test Fest Utrecht 09-05-2009
---XFAIL--
-Getting error: xmlNewTextWriterFilename : out of memory!
--EXPECTF--
-Warning: xmlwriter_open_uri(/): failed to open stream: Is a directory in %s on
line %d
+Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d
bool(false)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php