bug-gnustep
[Top][All Lists]
Advanced

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

[bugs #8498] [MinGW] NSUnarchiver crashes


From: Willem Rein Oudshoorn
Subject: [bugs #8498] [MinGW] NSUnarchiver crashes
Date: Thu, 08 Apr 2004 07:58:11 -0400
User-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.6) Gecko/20040206 Firefox/0.8

This mail is an automated notification from the bugs tracker
 of the project: GNUstep.

/**************************************************************************/
[bugs #8498] Latest Modifications:

Changes by: 
                Willem Rein Oudshoorn <address@hidden>
'Date: 
                Thu 04/08/04 at 11:58 (Europe/Amsterdam)

------------------ Additional Follow-up Comments ----------------------------
Actually, it is a generic bug, Linux is just lucky!
The bug is as follows:
NSUnarchiver has an ivar, "objMap" which is a map
from "ref" to "Objects".  However the the "Objects"
are NOT retained.  This means that if they are deallocated
the reference in this map becomes invalid.   Solution is
to retain the objects in this map.







/**************************************************************************/
[bugs #8498] Full Item Snapshot:

URL: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=8498>
Project: GNUstep
Submitted by: Willem Rein Oudshoorn
On: Thu 04/08/04 at 09:45

Category:  Base/Foundation
Severity:  3 - Ordinary
Item Group:  Bug
Resolution:  None
Assigned to:  wim
Status:  Open


Summary:  [MinGW] NSUnarchiver crashes

Original Submission:  It seems that if you call release on an decoded object
that is shared with other objects lead to a crash.

In particular:

Obj1 ---> string
Obj2 ----/

and if in initWithCoder of Obj1 (and Obj2) we have:

[coder decodeValuesOfObjCType: "@", &string];
[string release];

the decoding crashes.  
The funny thing is that this seems to be a windows
specific problem.  It works fine on Linux.

The attached program will demonstrate the problem:

./TestCoder Encode test.enc

this will create test.enc  

./TestCoder Decode test.enc

which decodes the created test.enc.  This crashes
on MinGW but not on Linux and the generated
files test.enc are identical, so it is probably
in de unarchiving code.




Follow-up Comments
------------------


-------------------------------------------------------
Date: Thu 04/08/04 at 11:58         By: wim
Actually, it is a generic bug, Linux is just lucky!
The bug is as follows:
NSUnarchiver has an ivar, "objMap" which is a map
from "ref" to "Objects".  However the the "Objects"
are NOT retained.  This means that if they are deallocated
the reference in this map becomes invalid.   Solution is
to retain the objects in this map.







File Attachments
-------------------

-------------------------------------------------------
Date: Thu 04/08/04 at 09:45  Name: testCoder.tar.bz2  Size: 1KB   By: wim
Demonstrating crash.
http://savannah.gnu.org/bugs/download.php?item_id=8498&amp;item_file_id=1173






For detailed info, follow this link:
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=8498>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/







reply via email to

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