From ad0f596570c20738338fb4ca087c118ca4b51fe0 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Mon, 13 Aug 2018 22:33:15 +0200 Subject: [PATCH] fix a memory leak --- src/frontend/outitf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/frontend/outitf.c b/src/frontend/outitf.c index f74e0e5d9..40938e32b 100644 --- a/src/frontend/outitf.c +++ b/src/frontend/outitf.c @@ -446,7 +446,7 @@ static int addSpecialDesc(runDesc *run, char *name, char *devname, char *param, int depind) { dataDesc *data; - char *unique; /* unique char * from back-end */ + char *unique, *freeunique; /* unique char * from back-end */ if (!run->numData) run->data = TMALLOC(dataDesc, 1); @@ -459,11 +459,13 @@ addSpecialDesc(runDesc *run, char *name, char *devname, char *param, int depind) data->name = copy(name); - unique = copy(devname); + freeunique = unique = copy(devname); /* MW. My "special" routine here */ INPinsertNofree(&unique, ft_curckt->ci_symtab); - data->specName = unique; + data->specName = copy(unique); + + tfree(freeunique); data->specParamName = copy(param); @@ -1249,6 +1251,7 @@ freeRun(runDesc *run) for (i = 0; i < run->numData; i++) { tfree(run->data[i].name); tfree(run->data[i].specParamName); + tfree(run->data[i].specName); } tfree(run->data);