Author: yamakenz
Date: Wed Feb 13 06:51:31 2008
New Revision: 5167

Modified:
  sigscheme-trunk/src/symbol.c

Log:
* src/symbol.c
 - (scm_intern): Fix possible leak


Modified: sigscheme-trunk/src/symbol.c
==============================================================================
--- sigscheme-trunk/src/symbol.c        (original)
+++ sigscheme-trunk/src/symbol.c        Wed Feb 13 06:51:31 2008
@@ -71,6 +71,7 @@
{
    ScmObj sym, lst, rest;
    uint32_t hash;
+    char *copied;
    DECLARE_INTERNAL_FUNCTION("scm_intern");

#if (SCM_USE_R6RS_CHARS && SCM_STRICT_ARGCHECK)
@@ -91,7 +92,8 @@
    }

/* if not found, allocate new symbol object and prepend it into the list */
-    sym = MAKE_SYMBOL(scm_strdup(name), SCM_UNBOUND);
+    copied = scm_strdup(name);
+    sym = MAKE_SYMBOL(copied, SCM_UNBOUND);
    scm_symbol_hash[hash] = CONS(sym, lst);

    return sym;

Reply via email to