From: Pekka Riikonen Date: Sun, 24 Nov 2002 19:09:39 +0000 (+0000) Subject: silc_sim_symname not allocate memory. X-Git-Tag: 1.2.beta1~869 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=ae28b0d12219f36d30debc5a4825280b5c589055;p=crypto.git silc_sim_symname not allocate memory. --- diff --git a/lib/silcsim/silcsimutil.c b/lib/silcsim/silcsimutil.c index a47b68ad..0da8993a 100644 --- a/lib/silcsim/silcsimutil.c +++ b/lib/silcsim/silcsimutil.c @@ -22,27 +22,26 @@ #ifdef SILC_SIM /* SIM support enabled */ -/* This puts two arguments together and returns a new allocated string. - This is used to produce the function names that are then get from +static char symname[256]; + +/* This is used to produce the function names that are then get from SIM's. */ char *silc_sim_symname(char *symbol, char *function) { - char *ret; int len1, len2, len3; len1 = strlen(symbol); len2 = strlen(function); len3 = strlen(SILC_SIM_SYMBOL_PREFIX); - ret = silc_calloc(len1 + len2 + len3 + 2 + 1, sizeof(char)); - - strncpy(ret, SILC_SIM_SYMBOL_PREFIX, len3); - strncat(ret, "_", 1); - strncat(ret, symbol, len1); - strncat(ret, "_", 1); - strncat(ret, function, len2); - - return ret; + memset(symname, 0, sizeof(symname)); + silc_strncat(symname, sizeof(symname), SILC_SIM_SYMBOL_PREFIX, len3); + silc_strncat(symname, sizeof(symname), "_", 1); + silc_strncat(symname, sizeof(symname), symbol, len1); + silc_strncat(symname, sizeof(symname), "_", 1); + silc_strncat(symname, sizeof(symname), function, len2); + + return symname; } #endif /* SILC_SIM */