2010-06-02 Geoff Norton <gnorton@novell.com>
authorGeoff Norton <grompf@sublimeintervention.com>
Wed, 2 Jun 2010 20:57:42 +0000 (20:57 -0000)
committerGeoff Norton <grompf@sublimeintervention.com>
Wed, 2 Jun 2010 20:57:42 +0000 (20:57 -0000)
        * appdomain.c: If we are running with IOMAP we might
        have been provided a string that isn't case-aware for our file-
        system, so we need to use io-portability to check if the file
        exists, rather than a simple glib test.

        Fixes #608849

svn path=/trunk/mono/; revision=158366

mono/metadata/ChangeLog
mono/metadata/appdomain.c

index 4441f3a6f2a38f5b2537cc0503fcadfcc2f858ae..80d8c40b2c6f6389a784119bf3ac75ce7ce2fbf5 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-02  Geoff Norton  <gnorton@novell.com>
+
+       * appdomain.c: If we are running with IOMAP we might
+       have been provided a string that isn't case-aware for our file-
+       system, so we need to use io-portability to check if the file 
+       exists, rather than a simple glib test.
+
+       Fixes #608849
+
 2010-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * verify.c (verify_generic_parameters): Verify if
index a50bbdf33a3af9b8753ca12d0096940f3ffd60cb..64a3fcf4757dd2980f8774fa065fdbcd1435d572 100644 (file)
@@ -1266,8 +1266,18 @@ shadow_copy_sibling (gchar *src, gint srclen, const char *extension, gchar *targ
        gboolean copy_result;
        
        strcpy (src + srclen - tail_len, extension);
-       if (!g_file_test (src, G_FILE_TEST_IS_REGULAR))
+
+       if (IS_PORTABILITY_CASE) {
+               gchar *file = mono_portability_find_file (src, TRUE);
+
+               if (file == NULL)
+                       return TRUE;
+
+               g_free (file);
+       } else if (!g_file_test (src, G_FILE_TEST_IS_REGULAR)) {
                return TRUE;
+       }
+
        orig = g_utf8_to_utf16 (src, strlen (src), NULL, NULL, NULL);
 
        strcpy (target + targetlen - tail_len, extension);