fixed dynl memory leak

This commit is contained in:
Tim Pierce 1997-11-22 19:15:09 +00:00
commit 0113293e54
2 changed files with 11 additions and 5 deletions

View file

@ -1,7 +1,13 @@
1997-11-22 Tim Pierce <twp@twp.tezcat.com>
* dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
yesterday's underscore patch. (Thanks to Marius Vollmer for
spotting this.)
1997-11-21 Tim Pierce <twp@twp.tezcat.com>
* dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
DLSYM_ADDS_UNDERSCORE is not defined.
DLSYM_ADDS_USCORE is not defined.
1997-11-06 Mikael Djurfeldt <mdj@nada.kth.se>

View file

@ -89,22 +89,22 @@ sysdep_dynl_func (symb, handle, subr)
char *err;
char *usymb;
usymb = (char *) malloc (strlen (symb) + 2);
#ifdef DLSYM_ADDS_USCORE
strcpy (usymb, symb);
fptr = dlsym (handle, symb);
#else
usymb = (char *) malloc (strlen (symb) + 2);
*usymb = '_';
strcpy (usymb + 1, symb);
fptr = dlsym (handle, usymb);
free (usymb);
#endif
fptr = dlsym (handle, usymb);
err = (char *)dlerror ();
if (!fptr)
{
SCM_ALLOW_INTS;
scm_misc_error (subr, err? err : "symbol has NULL address", SCM_EOL);
}
free (usymb);
return fptr;
}