From 720f29851a3464d89d1cfd3c0991194540aa445b Mon Sep 17 00:00:00 2001 From: dwarning Date: Sun, 1 May 2022 17:55:56 +0200 Subject: [PATCH] prevent crash for absurd parameter input --- src/spicelib/devices/dio/diosetup.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/spicelib/devices/dio/diosetup.c b/src/spicelib/devices/dio/diosetup.c index 70873b16d..c43f5b0c5 100644 --- a/src/spicelib/devices/dio/diosetup.c +++ b/src/spicelib/devices/dio/diosetup.c @@ -90,10 +90,18 @@ DIOsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states) model->DIOgradingSWCoeff = .33; } if(!model->DIOforwardKneeCurrentGiven) { - model->DIOforwardKneeCurrent = 0.0; + model->DIOforwardKneeCurrent = 1.0; + } else { + if (model->DIOforwardKneeCurrent < ckt->CKTepsmin) { + model->DIOforwardKneeCurrentGiven = FALSE; + } } if(!model->DIOreverseKneeCurrentGiven) { - model->DIOreverseKneeCurrent = 0.0; + model->DIOreverseKneeCurrent = 1.0; + } else { + if (model->DIOreverseKneeCurrent < ckt->CKTepsmin) { + model->DIOreverseKneeCurrentGiven = FALSE; + } } if(!model->DIObrkdEmissionCoeffGiven) { model->DIObrkdEmissionCoeff = model->DIOemissionCoeff;