bugDotGNU Portable.NET - Bugs: bug #11212, Marshalling bug - code pointer in...

 
 

You are not allowed to post comments on this tracker with your current authentification level.

bug #11212: Marshalling bug - code pointer in struct marshalled to unmanaged becomes invalid

Submitted by:  Ilyak <Ilyak>
Submitted on:  Sat 04 Dec 2004 08:04:08 AM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: None
Privacy: PublicAssigned to: None
Open/Closed: Open

Sun 12 Dec 2004 09:47:19 AM UTC, comment #3:

(gdb) run call.exe
Starting program: /usr/local/bin/ilrun call.exe
[Thread debugging using libthread_db enabled]
[New Thread 1073879904 (LWP 1429)]
First time
Proceed to emitter
Proceed to callback
Second time
Proceed to emitter

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1073879904 (LWP 1429)]
0x0000ffe9 in ?? ()
(gdb) bt
#0 0x0000ffe9 in ?? ()
#1 0x405fb675 in EmitCallback () from /home/ilyak/bug/libcall.so
#2 0x080d78d3 in ffi_call_SYSV () at src/x86/sysv.S:59
#3 0x080d7899 in ffi_raw_call (cif=0x0, fn=0x405fb658 <EmitCallback>,
rvalue=0x13, fake_avalue=0xffe9) at src/x86/ffi.c:515
#4 0x08094b8e in _ILCVMInterpreter (thread=0x8157e70) at cvm_call.c:889
#5 0x0804c3d8 in _ILCallMethod (thread=0x8157e70, method=0x40296578,
unpack=0x804c25c <_ILCallUnpackVResult>, result=0xbffff710, isCtor=0,
_this=0x0, pack=0x804bfa4 <_ILCallPackVParams>, userData=0xbffff720)
at call.c:706
#6 0x0804c6ad in ILExecThreadCallV (thread=0x8157e70, method=0x40296578,
result=0xbffff710, args=0xbffff720) at call.c:928
#7 0x0804bb6c in main (argc=2, argv=0xbffff7d4) at ilrun.c:494

Not quite a NULL, while sure this is not a real pointer :)

Ilyak <Ilyak>
Sun 12 Dec 2004 09:16:41 AM UTC, comment #2:

I remember that when i traced this bug with gdb, i end up rith segfault when trying to execute code at something like 0x00000006.

And, anyway, if i'm getting a NULL for the delegate, why don't i get NullPointerException? (I get hang instead)
And I beleive this behavior is invalid anyway, both calls should succeed, should not them?

Ilyak <Ilyak>
Sat 11 Dec 2004 02:45:40 PM UTC, comment #1:

I added WriteLines for cbi.callback in the code and this is what it threw up.

First time
call+CallbackDelegate
Proceed to emitter
Proceed to callback
Second time
Uncaught exception: System.NullReferenceException: The value 'null' was found where an instance of an object was required

So you're getting a C# null for the delegate there.

Gopal.V <t3rmin4t0r>
Project Administrator
Sat 04 Dec 2004 08:04:08 AM UTC, original submission:

There is an example that shows problem: If i have a struct with Delegate in it, and i pass ref ThisStruct to unmanaged method twice, on second pass Delegate becomes invalid and ilrun crashes.

Mono crashes even on first pass there :))

Ilyak <Ilyak>

 

Attached Files
file #2143:  bug.tar.gz added by Ilyak (684B - application/x-tgz - Tiny bug example. Run build.sh to make.)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follows 1 latest change.

Date Changed By Updated Field Previous Value => Replaced By
Sat 04 Dec 2004 08:04:08 AM UTCIlyakAttached File-=>Added bug.tar.gz, #1942

Back to the top


Powered by Savane 3.1-cleanup