Browse Source

Fix some memory leaks.

pre-master-46
Brian Taylor 1 year ago
committed by Holger Vogt
parent
commit
75c2811fa9
  1. 4
      src/frontend/rawfile.c
  2. 11
      src/spicelib/parser/inpgmod.c

4
src/frontend/rawfile.c

@ -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;

11
src/spicelib/parser/inpgmod.c

@ -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;
}

Loading…
Cancel
Save