[Mono-bugs] [Bug 562009] [verifier] SIGSEGV in mono_method_signature on a bad assembly
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Thu Apr 15 10:18:07 EDT 2010
http://bugzilla.novell.com/show_bug.cgi?id=562009
http://bugzilla.novell.com/show_bug.cgi?id=562009#c3
--- Comment #3 from Sebastien Pouliot <spouliot at novell.com> 2010-04-15 14:18:07 UTC ---
This fix the crash for the attached assembly. However it does not deal the NULL
entries in the method list (which would likely lead to later crashes).
Index: metadata/loader.c
===================================================================
--- metadata/loader.c (revision 155309)
+++ metadata/loader.c (working copy)
@@ -598,9 +598,11 @@
continue;
method = mono_get_method (klass->image, MONO_TOKEN_METHOD_DEF |
(klass->method.first + i + 1), klass);
- other_sig = mono_method_signature (method);
- if (method && other_sig && (sig->call_convention !=
MONO_CALL_VARARG) && mono_metadata_signature_equal (sig, other_sig))
- return method;
+ if (method) {
+ other_sig = mono_method_signature (method);
+ if (other_sig && (sig->call_convention != MONO_CALL_VARARG) &&
mono_metadata_signature_equal (sig, other_sig))
+ return method;
+ }
}
}
@@ -616,7 +618,7 @@
MonoMethod *m = klass->methods [i];
MonoMethodSignature *msig;
- if (!((fqname && !strcmp (m->name, fqname)) ||
+ if (!m || !((fqname && !strcmp (m->name, fqname)) ||
(qname && !strcmp (m->name, qname)) ||
(name && !strcmp (m->name, name))))
continue;
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list