Patches item #1688540, was opened at 2007-03-26 12:33 Message generated for change (Comment added) made by eighthave You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1688540...
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: bugfix Status: Open Resolution: None Priority: 5 Private: No Submitted By: Stephen Sinclair (radarsat1)
Assigned to: Miller Puckette (millerpuckette)
Summary: fix makefilename segfault when wrong argument type received
Initial Comment: Currently, Pd segfaults if the "makefilename" object is configured to receive a symbol ("%s") and it receives a float argument.
This patch uses strstr() to check if the sprintf string is going to accept a float, like so:
strstr(s->s_name, "%s")==0
The result is saved in the t_makefilename structure. It is recalculated on the "set" message.
When the wrong message type is received, a 0 or "" string is substituted, respectfully.
While it is unfortunate to do a string search like this, it is not very good to have Pd segfaulting, so I see no alternative.
----------------------------------------------------------------------
Comment By: Hans-Christoph Steiner (eighthave)
Date: 2007-06-14 11:11
Message: Logged In: YES user_id=27104 Originator: NO
I applied this patch to the Pd-0.39.2-extended branch and it failed to compile:
x_connective.c: In function 'makefilename_new': x_connective.c:1213: error: 'struct _makefilename' has no member named 'x_accept_float' x_connective.c: In function 'makefilename_float': x_connective.c:1219: error: 'struct _makefilename' has no member named 'x_accept_float' x_connective.c: In function 'makefilename_symbol': x_connective.c:1229: error: 'struct _makefilename' has no member named 'x_accept_float' x_connective.c: In function 'makefilename_set': x_connective.c:1239: error: 'struct _makefilename' has no member named 'x_accept_float'
My guess is that the patch needs to be a "diff -uw" format, which is much better at dealing with different line numbers, etc.
Also, an example patch to demonstrate the bug is always useful.
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1688540...