From 665f5e77ad3270d934e1563da1e013d04ca77a78 Mon Sep 17 00:00:00 2001 From: Robin Getz Date: Sat, 25 Jul 2026 19:30:38 -0400 Subject: [PATCH] wdsp: Prevent potential out-of-bounds array access Fix cppcheck warnings where array elements were accessed before validating their indices. Reorder conditional expressions to ensure bounds checks are performed before array accesses, taking advantage of C++ short-circuit evaluation. In EMNR::NP::interpM(), check the index limit before accessing xvals[idx]. In SNBA::scanFrame(), verify i is within the merit array bounds before evaluating merit[i]. These changes improve defensive programming practices and prevent potential undefined behavior if an index exceeds the valid range. No functional changes. Signed-off-by: Robin Getz --- wdsp/emnr.cpp | 2 +- wdsp/snba.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wdsp/emnr.cpp b/wdsp/emnr.cpp index 6e6660e3a..c07bd22e8 100644 --- a/wdsp/emnr.cpp +++ b/wdsp/emnr.cpp @@ -233,7 +233,7 @@ void EMNR::NP::interpM ( double xlhigh; double frac; - while ((x >= xvals[idx]) && (idx < nvals - 1)) + while ((idx < nvals - 1) && (x >= xvals[idx])) idx++; xllow = log10 (xvals[idx - 1]); diff --git a/wdsp/snba.cpp b/wdsp/snba.cpp index dcd103031..9afb65b04 100644 --- a/wdsp/snba.cpp +++ b/wdsp/snba.cpp @@ -620,7 +620,7 @@ int SNBA::scanFrame( if (nimp > 0) { - while (merit[i] == merit[0] && i < nimp) + while (i < nimp && merit[i] == merit[0]) i++; }