[PD-dev] [ pure-data-Patches-2913280 ] GOP abstraction can crash pd if content is reloaded

SourceForge.net noreply at sourceforge.net
Wed Aug 18 04:48:54 CEST 2010


Patches item #2913280, was opened at 2009-12-12 14:08
Message generated for change (Comment added) made by nobody
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478072&aid=2913280&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: None
Group: None
Status: Open
Resolution: Fixed
Priority: 8
Private: No
Submitted By: Cyrille Henry (nusmuk)
Assigned to: Miller Puckette (millerpuckette)
Summary: GOP abstraction can crash pd if content is reloaded

Initial Comment:
if abs1 is an abstraction (maybe empty)
if abs2 is a GOP abstraction that use abs1
opening an other instance of abs1 and saving it will crash pd.
see attachement.


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

Comment By: Nobody/Anonymous (nobody)
Date: 2010-08-18 02:48

Message:
I'm going to see if I can fix the bug better (the patch here simply refuses
to reload abstractions
under certain conditions which I think is wrong.)

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

Comment By: Hans-Christoph Steiner (eighthave)
Date: 2010-07-13 03:41

Message:
The bug is that canvas_doclear() wasn't checking whether x->gl_editor
exists before using it.  Here's a patch to fix it, committed to Pd-extended
in svn commit #13707:

Index: g_editor.c
===================================================================
--- g_editor.c	(revision 13704)
+++ g_editor.c	(working copy)
@@ -2212,7 +2212,7 @@
     int dspstate;
 
     dspstate = canvas_suspend_dsp();
-    if (x->gl_editor->e_selectedline)
+    if (x->gl_editor && x->gl_editor->e_selectedline)
     {
         canvas_disconnect(x, x->gl_editor->e_selectline_index1,
              x->gl_editor->e_selectline_outno,
@@ -2229,7 +2229,7 @@
         /* if text is selected, deselecting it might remake the
         object. So we deselect it and hunt for a "new" object on
         the glist to reselect. */
-    if (x->gl_editor->e_textedfor)
+    if (x->gl_editor && x->gl_editor->e_textedfor)
     {
         newest = 0;
         glist_noselect(x);


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

Comment By: Hans-Christoph Steiner (eighthave)
Date: 2010-06-14 19:37

Message:
Confirmed on Mac OS X/10.5.8 Intel using Pd-extended 0.42.5-rc2.

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

Comment By: IOhannes m zmlnig (zmoelnig)
Date: 2009-12-12 14:49

Message:
confirmed (linux; Pd-vanilla-0.42.5)

it does _not_ crash on 0.41-4 on the same machine.

a quick backtrace shows that the crash appears in canvas_doclear() because
the gl_editor of the argument x is NULL.

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

Comment By: Cyrille Henry (nusmuk)
Date: 2009-12-12 14:09

Message:
i forget to say that this is on linux, pd vanilla 0.42


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

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



More information about the Pd-dev mailing list