From 620cb2e2eb86f849298abafbc3224385a6fa17a3 Mon Sep 17 00:00:00 2001 From: Rob Richards Date: Mon, 22 Dec 2003 16:46:26 +0000 Subject: [PATCH] only test url_stat in read mode --- ext/libxml/libxml.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 11a76a4294..46119de8cd 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -238,7 +238,7 @@ int php_libxml_streams_IO_match_wrapper(const char *filename) return php_stream_locate_url_wrapper(filename, NULL, 0 TSRMLS_CC) ? 1 : 0; } -void *php_libxml_streams_IO_open_wrapper(const char *filename, const char *mode) +void *php_libxml_streams_IO_open_wrapper(const char *filename, const char *mode, const int read_only) { char resolved_path[MAXPATHLEN + 1]; php_stream_statbuf ssbuf; @@ -257,7 +257,7 @@ void *php_libxml_streams_IO_open_wrapper(const char *filename, const char *mode) may try to open files that don't exist, but it is not a failure in xml processing (eg. DTD files) */ wrapper = php_stream_locate_url_wrapper(resolved_path, &path_to_open, ENFORCE_SAFE_MODE TSRMLS_CC); - if (wrapper && wrapper->wops->url_stat) { + if (wrapper && read_only && wrapper->wops->url_stat) { if (wrapper->wops->url_stat(wrapper, path_to_open, 0, &ssbuf, NULL TSRMLS_CC) == -1) { return NULL; } @@ -272,12 +272,12 @@ void *php_libxml_streams_IO_open_wrapper(const char *filename, const char *mode) void *php_libxml_streams_IO_open_read_wrapper(const char *filename) { - return php_libxml_streams_IO_open_wrapper(filename, "rb"); + return php_libxml_streams_IO_open_wrapper(filename, "rb", 1); } void *php_libxml_streams_IO_open_write_wrapper(const char *filename) { - return php_libxml_streams_IO_open_wrapper(filename, "wb"); + return php_libxml_streams_IO_open_wrapper(filename, "wb", 0); } int php_libxml_streams_IO_read(void *context, char *buffer, int len) -- 2.50.1