bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #27233] GSFFIInvocations share _retval ivar while in -forwardInvoca


From: Niels Grewe
Subject: [bug #27233] GSFFIInvocations share _retval ivar while in -forwardInvocation:
Date: 2009年8月12日 11:55:39 +0000
User-agent: Mozilla/5.0 (compatible; Konqueror/4.3) KHTML/4.3.0 (like Gecko)

URL:
 <http://savannah.gnu.org/bugs/?27233>
 Summary: GSFFIInvocations share _retval ivar while in
-forwardInvocation:
 Project: GNUstep
 Submitted by: thebeing
 Submitted on: Mi 12 Aug 2009 11:55:38 GMT
 Category: Base/Foundation
 Severity: 3 - Normal
 Item Group: Bug
 Status: None
 Privacy: Public
 Assigned to: None
 Open/Closed: Open
 Discussion Lock: Any
 _______________________________________________________
Details:
Hello,
I encountered an odd problem with invocations (GNUstep SVN r28455, 64bit
Debian Linux with libffi 3.0.7). I'm working on a class that records
invocations for later use. The seems to be no problem as long as those
invocations are invoked from outside -forwardInvocation:. 
But whenever I invoke those invocations from -forwardInvocation: their
respective _retval ivars point to the same chunk of memory. This causes a
problem as soon as you have two invocations with different return types. (eg.
BOOL and id) If you invoke the id invocation first, it will set _validReturn
to yes and places a reference to the returned object in _retval. 
Invoking the BOOL invocation afterwards will then modify the _retval field to
hold its own return value. 
If you invoke the id invocation again afterwards, it will try to release
_retval with CLEAR_RETURN_VALUE_IF_OBJECT because _validReturn is YES and
info[0].type is _C_ID. This causes a message lookup to a class at some invalid
address (0x1 or 0x0 in this case) and results in a segfault. I have appended a
test case to demonstrate the problem.
kind regards,
Niels
 _______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Mi 12 Aug 2009 11:55:38 GMT Name: test.m Size: 2kB By: thebeing
Test case
<http://savannah.gnu.org/bugs/download.php?file_id=18560>
 _______________________________________________________
Reply to this item at:
 <http://savannah.gnu.org/bugs/?27233>
_______________________________________________
 Nachricht geschickt von/durch Savannah
 http://savannah.gnu.org/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]

AltStyle によって変換されたページ (->オリジナル) /