From ae28b0d12219f36d30debc5a4825280b5c589055 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 24 Nov 2002 19:09:39 +0000 Subject: [PATCH] silc_sim_symname not allocate memory. --- lib/silcsim/silcsimutil.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) 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 */ -- 2.43.0