[Mono-bugs] [Bug 651682] New: [verifier] SIGABRT in mono_metadata_decode_row
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Nov 5 11:38:02 EDT 2010
https://bugzilla.novell.com/show_bug.cgi?id=651682
https://bugzilla.novell.com/show_bug.cgi?id=651682#c0
Summary: [verifier] SIGABRT in mono_metadata_decode_row
Classification: Mono
Product: Mono: Runtime
Version: SVN
Platform: x86
OS/Version: openSUSE 11.3
Status: NEW
Severity: Normal
Priority: P5 - None
Component: verifier
AssignedTo: rkumpera at novell.com
ReportedBy: spouliot at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Created an attachment (id=398793)
--> (http://bugzilla.novell.com/attachment.cgi?id=398793)
assembly to reproduce abort
MONO_PATH=./bin gdb --args pedump --verify all
bin/Microsoft.VisualBasic.sigabrt.4655.dll
* Assertion at metadata.c:966, condition `idx >= 0' not met
Program received signal SIGABRT, Aborted.
0xffffe424 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe424 in __kernel_vsyscall ()
#1 0xb7e2e7ff in raise () from /lib/libc.so.6
#2 0xb7e30140 in abort () from /lib/libc.so.6
#3 0x08199c86 in monoeg_g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
format=0x81aceb0 "* Assertion at %s:%d, condition `%s' not met\n",
args=0xbfffea04 "\242\316\032\b\306\003") at goutput.c:134
#4 0x08199d05 in monoeg_assertion_message (format=0x81aceb0 "* Assertion at
%s:%d, condition `%s' not met\n") at goutput.c:154
#5 0x0809cbd9 in mono_metadata_decode_row (t=0x8290618, idx=-1,
res=0xbfffea68, res_size=1) at metadata.c:966
#6 0x080a120c in mono_metadata_parse_mh_full (m=0x82904e8, container=0x0,
ptr=0xb7bd08a8 "") at metadata.c:3494
#7 0x0807da39 in mono_method_get_header (method=0x82ad14c) at loader.c:2417
#8 0x081150b9 in mono_method_verify (method=0x82ad14c, level=135) at
verify.c:4545
#9 0x080508a2 in dump_verify_info (image=0x82904e8, flags=135) at pedump.c:369
#10 0x0805167c in main (argc=4, argv=0xbffff034) at pedump.c:735
(gdb) up 5
#5 0x0809cbd9 in mono_metadata_decode_row (t=0x8290618, idx=-1,
res=0xbfffea68, res_size=1) at metadata.c:966
966 g_assert (idx >= 0);
(gdb) up
#6 0x080a120c in mono_metadata_parse_mh_full (m=0x82904e8, container=0x0,
ptr=0xb7bd08a8 "") at metadata.c:3494
3494 mono_metadata_decode_row (t, idx, cols, 1);
Note that there's already a check
if (idx >= t->rows)
return NULL;
in mono_metadata_decode_row which guards against the
g_assert (idx < t->rows);
so maybe this condition (< 0) should also be checked by the caller ?
or a *_checked function should spot this to avoid duplicated checks
--
Configure bugmail: https://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