]> granicus.if.org Git - php/commitdiff
Fix bug #61565 Fileinfo ext\fileinfo\tests\finfo_file_001.phpt fails
authorAnatoliy Belsky <ab@php.net>
Mon, 2 Apr 2012 15:19:09 +0000 (17:19 +0200)
committerAnatoliy Belsky <ab@php.net>
Mon, 2 Apr 2012 15:19:09 +0000 (17:19 +0200)
ext/fileinfo/fileinfo.c

index caab03bac34c9d4932c9c1bce911cf16dbf961f0..2c0e39a714fc3934796076eed086fed9af142023 100644 (file)
@@ -515,11 +515,22 @@ static void _php_finfo_get_type(INTERNAL_FUNCTION_PARAMETERS, int mode, int mime
                        wrap = php_stream_locate_url_wrapper(buffer, &tmp2, 0 TSRMLS_CC);
 
                        if (wrap) {
+                               php_stream *stream;
                                php_stream_context *context = php_stream_context_from_zval(zcontext, 0);
+
+#ifdef PHP_WIN32
+                               if (php_stream_stat_path_ex(buffer, 0, &ssb, context) == SUCCESS) {
+                                       if (ssb.sb.st_mode & S_IFDIR) {
+                                               ret_val = mime_directory;
+                                               goto common;
+                                       }
+                               }
+#endif
+
 #if PHP_API_VERSION < 20100412
-                               php_stream *stream = php_stream_open_wrapper_ex(buffer, "rb", ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, context);
+                               stream = php_stream_open_wrapper_ex(buffer, "rb", ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, context);
 #else
-                               php_stream *stream = php_stream_open_wrapper_ex(buffer, "rb", REPORT_ERRORS, NULL, context);
+                               stream = php_stream_open_wrapper_ex(buffer, "rb", REPORT_ERRORS, NULL, context);
 #endif
 
                                if (!stream) {