Fix some memory leaks.

This commit is contained in:
Brian Taylor 2024-11-05 11:12:48 -08:00 committed by Holger Vogt
parent a2b8b0d733
commit 75c2811fa9
2 changed files with 13 additions and 2 deletions

View File

@ -414,6 +414,8 @@ raw_read(char *name) {
raw_padded = TRUE;
else
fprintf(cp_err, "Warning: unknown flag %s\n", t);
tfree(t);
}
} else if (ciprefix("no. variables:", buf)) {
s = SKIP(buf);
@ -541,6 +543,8 @@ raw_read(char *name) {
else
fprintf(cp_err, "Error: bad var line %s\n", buf);
tfree(t);
/* Fix the name... */
if (isdigit_c(v->v_name[0]) && (r = ft_typabbrev(v ->v_type)) != NULL) {
char *x = v->v_name;

View File

@ -531,8 +531,10 @@ INPparseNumMod(CKTcircuit *ckt, INPmodel *model, INPtables *tab, char **errMessa
char *parm; /* name of a parameter */
INPgetTok(&line, &parm, 1);
if (!*parm)
if (!*parm) {
FREE(parm);
break;
}
int idx = INPfindParm(parm, info->cardParms, info->numParms);
if (idx == E_MISSING) {
@ -559,8 +561,13 @@ INPparseNumMod(CKTcircuit *ckt, INPmodel *model, INPtables *tab, char **errMessa
}
error = info->setCardParm(info->cardParms[idx].id, value, tmpCard);
if (info->cardParms[idx].dataType & IF_STRING)
if (info->cardParms[idx].dataType & IF_STRING) {
FREE(value->sValue);
} else if (info->cardParms[idx].dataType & IF_REALVEC) {
FREE(value->v.vec.rVec);
} else if (info->cardParms[idx].dataType & IF_INTVEC) {
FREE(value->v.vec.iVec);
}
if (error)
return error;
}