From 88a4acd9c21bb44381fe25ce212e976f92a85110 Mon Sep 17 00:00:00 2001 From: Ivica Ico Bukvic <ico@vt.edu> Date: Wed, 27 Feb 2013 16:44:11 -0500 Subject: [PATCH] Fixed segfault bugs with ascseq and ascwave externals --- externals/cxc/ascseq.c | 5 +++++ externals/cxc/ascwave.c | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/externals/cxc/ascseq.c b/externals/cxc/ascseq.c index 2a6e21ca3..33e8042a6 100644 --- a/externals/cxc/ascseq.c +++ b/externals/cxc/ascseq.c @@ -56,6 +56,11 @@ void ascseq_anything(t_ascseq *x, t_symbol* s, t_int argc, t_atom* argv) len = 0; x->x_bla[0] = '\0'; + if (!s) { // we sent a bang, so report and ignore it) + error("ascseq: ignoring bang message"); + return; + } + //symbol_string(s->s_name, tmp, 1024); if(!strstr(s->s_name,LISTSEL)) { strcat(x->x_bla,s->s_name); diff --git a/externals/cxc/ascwave.c b/externals/cxc/ascwave.c index 9b2031b86..22f85b852 100644 --- a/externals/cxc/ascwave.c +++ b/externals/cxc/ascwave.c @@ -68,7 +68,7 @@ void ascwave_ft1(t_ascwave *x, t_floatarg g) xip = (char*)malloc((sz+1)*sizeof(char)); xap = (char*)malloc((sz+1)*sizeof(char)); - for (i = 0;i <= sz; ++i) { + for (i = 0; i < sz; ++i) { if (i == sz-1) { xip[i] = lchr; } else { @@ -86,17 +86,21 @@ void ascwave_ft1(t_ascwave *x, t_floatarg g) xap[i] = i % 80 + 33; } // xip[sz] = schr;//'\n'; - xip[sz+1] = '\0'; + xip[sz] = '\0'; //xap[sz] = schr;//'\n'; - xap[sz+1] = '\0'; + xap[sz] = '\0'; // poststring(xip); // post("ft1: %f, %d", x->x_jodel, sz); // outlet_float(x->t_ob.ob_outlet, x->x_jodel + x->x_jodel); outlet_symbol(x->t_ob.ob_outlet, gensym(xip)); - for (i = 0; i < g-2;++i) + for (i = 0; i < g-2;++i) { + fprintf(stderr,"i=%d ", i); outlet_symbol(x->t_ob.ob_outlet, gensym(xap)); - if (g > 1) + } + if (g > 1) { + fprintf(stderr,"g > 1"); outlet_symbol(x->t_ob.ob_outlet, gensym(xip)); + } x->x_jodel = g; free(xip); -- GitLab