From 2eea849c061d91327c4211c2d700bc0b61cbad32 Mon Sep 17 00:00:00 2001 From: "R. Timothy Edwards" Date: Tue, 7 Apr 2026 21:15:56 -0400 Subject: [PATCH] Corrected a crash condition in R-C extraction (extresist) caused by old code that still references devices like FETs assuming four ports. I resolved the crash condition but have not worked on fixing the code to properly handle a variable number of terminals per device. --- VERSION | 2 +- resis/ResRex.c | 2 +- resis/ResSimple.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 24bead74..c34f2dd4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.632 +8.3.633 diff --git a/resis/ResRex.c b/resis/ResRex.c index f85ff5b1..98bcfd30 100644 --- a/resis/ResRex.c +++ b/resis/ResRex.c @@ -1356,7 +1356,7 @@ ResFixUpConnections(extDev, layoutDev, extNode, nodename) } if (extDev->subs == extNode) { - if ((subs = layoutDev->rd_fet_subs) != NULL) + if ((layoutDev->rd_nterms >= 4) && ((subs = layoutDev->rd_fet_subs) != NULL)) { if (subs->rn_name != NULL && notdecremented) { diff --git a/resis/ResSimple.c b/resis/ResSimple.c index 9099da25..700345f5 100644 --- a/resis/ResSimple.c +++ b/resis/ResSimple.c @@ -386,7 +386,7 @@ ResMoveDevices(node1, node2) devptr = devptr->te_nextt; if (device->rd_fet_gate == node1) device->rd_fet_gate = node2; - else if (device->rd_fet_subs == node1) + else if ((device->rd_nterms >= 4) && (device->rd_fet_subs == node1)) device->rd_fet_subs = node2; else if (device->rd_fet_source == node1) device->rd_fet_source = node2;