Bugs item #3298383, was opened at 2011-05-06 14:13
Message generated for change (Tracker Item Submitted) made by radarsat1
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3298383&group_id=55736

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: puredata
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Stephen Sinclair (radarsat1)
Assigned to: Nobody/Anonymous (nobody)
Summary: PureData writing beyond t_object struct on Windows.

Initial Comment:
This very simple external provides a responder to a single message, "test".  
The object's data structure extends t_object by a single integer, "pad".  I set 
"pad" to zero immediately after pd_new().  Later, when it receives "test", it 
prints "pad" again.  On Linux, the log contains the following:

hello_new, x->pad: 0
hello_test, x->pad: 0

However, on Windows, the log contains this:

hello_new, x->pad: 0
hello_test, x->pad: 0x1

This means somewhere between initializing my object and receiving "test", the 
t_object structure is written to beyond its length.

This was noticed because in a real object I had a pointer in that location, 
which was invalidated by this effect, and dereferencing it caused PureData to 
crash.  My temporary solution is to put a padding int there, but it would be 
nice to find the problem.  I haven't yet managed to compile Pd from scratch for 
Windows yet, so I can't debug it until I get that working, but I thought I 
should report it in case anyone knows more.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3298383&group_id=55736

_______________________________________________
Pd-dev mailing list
[email protected]
http://lists.puredata.info/listinfo/pd-dev

Reply via email to