From 014a3fc56af1eccf927fd97202a3aa15d4b59cce Mon Sep 17 00:00:00 2001 From: Hans Schoenemann Date: Sat, 29 Feb 2020 14:29:41 +0100 Subject: [PATCH] fix: memory leak in loading libs --- Singular/iplib.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Singular/iplib.cc b/Singular/iplib.cc index d904b4d555..525a3bc4a4 100644 --- a/Singular/iplib.cc +++ b/Singular/iplib.cc @@ -889,6 +889,7 @@ BOOLEAN iiLibCmd( char *newlib, BOOLEAN autoexport, BOOLEAN tellerror, BOOLEAN f } else { + omFree(plib); if(IDTYP(pl)!=PACKAGE_CMD) { WarnS("not of type package."); @@ -902,8 +903,7 @@ BOOLEAN iiLibCmd( char *newlib, BOOLEAN autoexport, BOOLEAN tellerror, BOOLEAN f if(!LoadResult) IDPACKAGE(pl)->loaded = TRUE; omFree((ADDRESS)plib); - - return LoadResult; + return LoadResult; } /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ static void iiCleanProcs(idhdl &root) @@ -1306,6 +1306,7 @@ BOOLEAN load_builtin(const char *newlib, BOOLEAN autoexport, SModulFunc_t init) pl = enterid( plib,0, PACKAGE_CMD, &IDROOT, TRUE ); IDPACKAGE(pl)->libname=omStrDup(newlib); } + omFree(plib); IDPACKAGE(pl)->language = LANG_C; IDPACKAGE(pl)->handle=(void *)NULL;