pajoye          Mon May 25 16:16:54 2009 UTC

  Modified files:              
    /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:
  - MFB: #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.61&r2=1.62&diff_format=u
Index: php-src/ext/xmlwriter/php_xmlwriter.c
diff -u php-src/ext/xmlwriter/php_xmlwriter.c:1.61 
php-src/ext/xmlwriter/php_xmlwriter.c:1.62
--- php-src/ext/xmlwriter/php_xmlwriter.c:1.61  Mon May 11 12:22:19 2009
+++ php-src/ext/xmlwriter/php_xmlwriter.c       Mon May 25 16:16:54 2009
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: php_xmlwriter.c,v 1.61 2009/05/11 12:22:19 iliaa Exp $ */
+/* $Id: php_xmlwriter.c,v 1.62 2009/05/25 16:16:54 pajoye Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -28,7 +28,7 @@
 #include "php_ini.h"
 #include "ext/standard/info.h"
 #include "php_xmlwriter.h"
-
+#include "ext/standard/php_string.h"
 
 #if LIBXML_VERSION >= 20605
 static PHP_FUNCTION(xmlwriter_set_indent);
@@ -618,7 +618,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;
@@ -626,6 +629,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;
@@ -638,11 +645,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&r2=1.2&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 
php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt:1.2
--- php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt:1.1   Sat May 
16 15:11:21 2009
+++ php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt       Mon May 
25 16:16:54 2009
@@ -10,9 +10,7 @@
 Koen Kuipers koen...@gmail.com
 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&r2=1.2&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 
php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt:1.2
--- php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt:1.1   Sat May 
16 15:11:21 2009
+++ php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt       Mon May 
25 16:16:54 2009
@@ -10,9 +10,7 @@
 Koen Kuipers koen...@gmail.com
 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&r2=1.2&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 
php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt:1.2
--- php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt:1.1   Sat May 
16 15:11:21 2009
+++ php-src/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt       Mon May 
25 16:16:54 2009
@@ -10,9 +10,7 @@
 Koen Kuipers koen...@gmail.com
 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

Reply via email to