From e834c893135566d20f252fec2515db10a11445b0 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 12 May 2023 17:00:08 +0200 Subject: [PATCH] Prevent a crash when number of nodes differs in subckt and X call. --- src/frontend/inpc_probe.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/frontend/inpc_probe.c b/src/frontend/inpc_probe.c index 7ef70ce93..825eef914 100644 --- a/src/frontend/inpc_probe.c +++ b/src/frontend/inpc_probe.c @@ -895,6 +895,9 @@ void inp_probe(struct card* deck) else if (err == 2) { fprintf(stderr, "Warning: Zero voltage sources already set,\n .probe %s will be ignored\n", wltmp->wl_word); } + else if (err == 3) { + fprintf(stderr, "Warning: Number of nodes mismatch,\n .probe %s will be ignored\n", wltmp->wl_word); + } continue; } else if (!haveall) { @@ -1358,6 +1361,15 @@ static int setallvsources(struct card *tmpcard, NGHASHPTR instances, char *instn char nodenumstr[3]; char *nodename1 = get_terminal_name(instname, itoa10(nodenum, nodenumstr), instances); + if (!nodename1) { + tfree(begstr); + tfree(strnode1); + ds_free(&BVrefline); + ds_free(&Bpowerline); + ds_free(&Bpowersave); + return 3; + } + newline = tprintf("%s %s %s", begstr, newnode, instline); char* vline = tprintf("vcurr_%s:probe_int_%s:%s_%s %s %s 0", instname, nodename1, nodenumstr, strnode1, strnode1, newnode);