From f16f24d6e87c96313974268e653d597807e9e081 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sun, 29 May 2022 00:03:36 +0200 Subject: [PATCH] Prevent crash by checking that the scale vector frequency in ac mode is a complex vector. --- src/frontend/com_measure2.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/frontend/com_measure2.c b/src/frontend/com_measure2.c index de5cf6e3e..933b68f71 100644 --- a/src/frontend/com_measure2.c +++ b/src/frontend/com_measure2.c @@ -428,7 +428,12 @@ com_measure_when( value = get_value(meas, d, i); //d->v_compdata[i].cx_real; else value = d->v_realdata[i]; - scaleValue = dScale->v_compdata[i].cx_real; + if (dScale->v_compdata) + scaleValue = dScale->v_compdata[i].cx_real; + else { + fprintf(cp_err, "Error: no valid frequency scale for 'meas ac ...'\n"); + return MEASUREMENT_FAILURE; + } } else if (sp_check) { if (d->v_compdata) value = get_value(meas, d, i); //d->v_compdata[i].cx_real; @@ -668,7 +673,12 @@ measure_at( value = d->v_realdata[i]; // fprintf(cp_err, "Warning: 'meas ac' input vector is real!\n"); } - svalue = dScale->v_compdata[i].cx_real; + if (dScale->v_compdata) + svalue = dScale->v_compdata[i].cx_real; + else { + fprintf(cp_err, "Error: no valid frequency scale for 'meas ac ...'\n"); + return MEASUREMENT_FAILURE; + } } else if (sp_check) { if (d->v_compdata) value = get_value(meas, d, i); //d->v_compdata[i].cx_real; @@ -770,7 +780,12 @@ measure_minMaxAvg( value = d->v_realdata[i]; // fprintf(cp_err, "Warning: 'meas ac' input vector is real!\n"); } - svalue = dScale->v_compdata[i].cx_real; + if (dScale->v_compdata) + svalue = dScale->v_compdata[i].cx_real; + else { + fprintf(cp_err, "Error: no valid frequency scale for 'meas ac ...'\n"); + return MEASUREMENT_FAILURE; + } } else if (sp_check) { if (d->v_compdata) value = get_value(meas, d, i); //d->v_compdata[i].cx_real;