silc_sim_symname not allocate memory.
authorPekka Riikonen <priikone@silcnet.org>
Sun, 24 Nov 2002 19:09:39 +0000 (19:09 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sun, 24 Nov 2002 19:09:39 +0000 (19:09 +0000)
lib/silcsim/silcsimutil.c

index a47b68ad1d84af8cfc1597794139fba7aa2fa4f4..0da8993a367a5adf47bae90659e8d9e1cdb70362 100644 (file)
 
 #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 */