aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-11-13 04:40:01 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-11-13 04:40:01 +0000
commit88a4820dbff09d54d4e9e35a75ba727e554a957c (patch)
tree82df392bdcf042bb74a10a066cd4c20a0a17082d
parentbc634b8addc8752cca467846b07c177d9dea9337 (diff)
fix security warning in bad use of snprintf()
svn path=/trunk/externals/jackx/; revision=16544
-rw-r--r--jack-ports.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/jack-ports.c b/jack-ports.c
index 6c38141..b8d48bd 100644
--- a/jack-ports.c
+++ b/jack-ports.c
@@ -150,10 +150,11 @@ static void jackports_input(t_jackports *x, t_symbol *s,int argc, t_atom *argv)
if (t)
{
- s_port=gensym(strchr(ports[n],':')+1);
+ s_port = gensym(strchr(ports[n], ':') + 1);
-
- snprintf(x->buffer,l-strlen(s_port->s_name),ports[n]);
+ int clientlen = l - strlen(s_port->s_name) - 1;
+ strncpy(x->buffer, ports[n], clientlen);
+ x->buffer[clientlen] = '\0';
s_client = gensym(x->buffer);
SETSYMBOL(x->a_outlist,s_client);
@@ -179,10 +180,11 @@ static void jackports_input(t_jackports *x, t_symbol *s,int argc, t_atom *argv)
if (t)
{
- s_port=gensym(strchr(ports[n],':')+1);
-
+ s_port = gensym(strchr(ports[n], ':') + 1);
- snprintf(x->buffer,l-strlen(s_port->s_name),ports[n]);
+ int clientlen = l - strlen(s_port->s_name) - 1;
+ strncpy(x->buffer, ports[n], clientlen);
+ x->buffer[clientlen] = '\0';
s_client = gensym(x->buffer);
SETSYMBOL(x->a_outlist,s_client);