From daad3fb3c5a4f2e622df0127dac23f625e658037 Mon Sep 17 00:00:00 2001 From: Giles Atkinson <“gatk555@gmail.com”> Date: Sun, 8 May 2022 15:38:46 +0100 Subject: [PATCH] Fix memory leaks found by valgrind in the paranoia script. --- src/spicelib/devices/bsim4v5/b4v5mpar.c | 2 ++ src/spicelib/devices/vsrc/vsrcask.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/spicelib/devices/bsim4v5/b4v5mpar.c b/src/spicelib/devices/bsim4v5/b4v5mpar.c index 0ebc1e962..47542ecbd 100644 --- a/src/spicelib/devices/bsim4v5/b4v5mpar.c +++ b/src/spicelib/devices/bsim4v5/b4v5mpar.c @@ -103,6 +103,8 @@ GENmodel *inMod) break; case BSIM4v5_MOD_VERSION : + if (mod->BSIM4v5version) + free(mod->BSIM4v5version); mod->BSIM4v5version = value->sValue; mod->BSIM4v5versionGiven = TRUE; break; diff --git a/src/spicelib/devices/vsrc/vsrcask.c b/src/spicelib/devices/vsrc/vsrcask.c index 54aa946cc..0ef72402d 100644 --- a/src/spicelib/devices/vsrc/vsrcask.c +++ b/src/spicelib/devices/vsrc/vsrcask.c @@ -87,6 +87,7 @@ VSRCask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value, IFvalue * return (OK); case VSRC_CURRENT: if (ckt->CKTcurrentAnalysis & DOING_AC) { + FREE(errMsg); errMsg = TMALLOC(char, strlen(msg) + 1); errRtn = "VSRCask"; strcpy(errMsg,msg); @@ -100,6 +101,7 @@ VSRCask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value, IFvalue * return(OK); case VSRC_POWER: if (ckt->CKTcurrentAnalysis & DOING_AC) { + FREE(errMsg); errMsg = TMALLOC(char, strlen(msg) + 1); errRtn = "VSRCask"; strcpy(errMsg,msg);