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; raw_padded = TRUE;
else else
fprintf(cp_err, "Warning: unknown flag %s\n", t); fprintf(cp_err, "Warning: unknown flag %s\n", t);
tfree(t);
} }
} else if (ciprefix("no. variables:", buf)) { } else if (ciprefix("no. variables:", buf)) {
s = SKIP(buf); s = SKIP(buf);
@ -541,6 +543,8 @@ raw_read(char *name) {
else else
fprintf(cp_err, "Error: bad var line %s\n", buf); fprintf(cp_err, "Error: bad var line %s\n", buf);
tfree(t);
/* Fix the name... */ /* Fix the name... */
if (isdigit_c(v->v_name[0]) && (r = ft_typabbrev(v ->v_type)) != NULL) { if (isdigit_c(v->v_name[0]) && (r = ft_typabbrev(v ->v_type)) != NULL) {
char *x = v->v_name; 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 */ char *parm; /* name of a parameter */
INPgetTok(&line, &parm, 1); INPgetTok(&line, &parm, 1);
if (!*parm) if (!*parm) {
FREE(parm);
break; break;
}
int idx = INPfindParm(parm, info->cardParms, info->numParms); int idx = INPfindParm(parm, info->cardParms, info->numParms);
if (idx == E_MISSING) { 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); 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); 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) if (error)
return error; return error;
} }