2006-05-31 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / appdomain.c
index 101f39f8ea79710733d6dc5094def7e45a3c5241..6efa0690bab61862c5cd21ae576ab9d556b492bb 100644 (file)
@@ -31,7 +31,7 @@
 #include <mono/utils/mono-uri.h>
 #include <mono/utils/mono-logger.h>
 
-#define MONO_CORLIB_VERSION 51
+#define MONO_CORLIB_VERSION 52
 
 CRITICAL_SECTION mono_delegate_section;
 
@@ -978,13 +978,19 @@ ves_icall_System_Reflection_Assembly_LoadFrom (MonoString *fname, MonoBoolean re
 
        ass = mono_assembly_open_full (filename, &status, refOnly);
        
-       g_free (name);
-
        if (!ass){
-               MonoException *exc = mono_get_exception_file_not_found (fname);
+               MonoException *exc;
+
+               if (status == MONO_IMAGE_IMAGE_INVALID)
+                       exc = mono_get_exception_bad_image_format (name);
+               else
+                       exc = mono_get_exception_file_not_found (fname);
+               g_free (name);
                mono_raise_exception (exc);
        }
 
+       g_free (name);
+
        return mono_assembly_get_object (domain, ass);
 }