From 44786a490bfe98b90475e0700c0fc690dd28ef3b Mon Sep 17 00:00:00 2001 From: dwarning Date: Tue, 6 Nov 2012 20:56:27 +0100 Subject: [PATCH] fix a leak in devmodtranslate 3 terminal section --- src/frontend/subckt.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/frontend/subckt.c b/src/frontend/subckt.c index 57f9447a2..2799bcf61 100644 --- a/src/frontend/subckt.c +++ b/src/frontend/subckt.c @@ -1882,12 +1882,16 @@ devmodtranslate(struct line *deck, char *subname, wordlist * const submod) case 'z': /* hfet, mesa */ name = gettok(&t); (void) sprintf(buffer, "%s ", name); + tfree(name); name = gettok(&t); (void) sprintf(buffer + strlen(buffer), "%s ", name); + tfree(name); name = gettok(&t); (void) sprintf(buffer + strlen(buffer), "%s ", name); + tfree(name); name = gettok(&t); (void) sprintf(buffer + strlen(buffer), "%s ", name); + tfree(name); name = gettok(&t); wlsub = wl_find(name, submod); @@ -1897,6 +1901,7 @@ devmodtranslate(struct line *deck, char *subname, wordlist * const submod) else (void) sprintf(buffer + strlen(buffer), "%s:%s ", subname, name); + tfree(name); (void) strcat(buffer, t); tfree(s->li_line); s->li_line = buffer; @@ -2078,6 +2083,8 @@ devmodtranslate(struct line *deck, char *subname, wordlist * const submod) else (void) sprintf(buffer + strlen(buffer), "%s:%s ", subname, name); + tfree(name); + (void) strcat(buffer, t); tfree(s->li_line); s->li_line = buffer;