From 6f838a15ec2386509c466a06394db6c6cc9d35ee Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Mon, 3 Nov 2025 13:34:10 +0000 Subject: [PATCH] AIS/Radiosonde demods: Fix negative index into buffer. #2101 --- plugins/channelrx/demodais/aisdemodsink.cpp | 2 +- plugins/channelrx/demodradiosonde/radiosondedemodsink.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/channelrx/demodais/aisdemodsink.cpp b/plugins/channelrx/demodais/aisdemodsink.cpp index 55dee3fa1..9d8b5411e 100644 --- a/plugins/channelrx/demodais/aisdemodsink.cpp +++ b/plugins/channelrx/demodais/aisdemodsink.cpp @@ -199,7 +199,7 @@ void AISDemodSink::processOneSample(Complex &ci) int sampleOffset = -1; Real sampleSum = 0.0f; for (int i = 0; i < sampleCnt; i++) { - sampleSum += m_rxBuf[(x + sampleOffset + i) % m_rxBufLength] - dcOffset; + sampleSum += m_rxBuf[(x + sampleOffset + i + m_rxBufLength) % m_rxBufLength] - dcOffset; } int symbol = sampleSum >= 0.0f ? 1 : 0; diff --git a/plugins/channelrx/demodradiosonde/radiosondedemodsink.cpp b/plugins/channelrx/demodradiosonde/radiosondedemodsink.cpp index a7d5cd0ff..16f02ade0 100644 --- a/plugins/channelrx/demodradiosonde/radiosondedemodsink.cpp +++ b/plugins/channelrx/demodradiosonde/radiosondedemodsink.cpp @@ -207,7 +207,7 @@ void RadiosondeDemodSink::processOneSample(Complex &ci) int sampleOffset = -1; Real sampleSum = 0.0f; for (int i = 0; i < sampleCnt; i++) { - sampleSum += m_rxBuf[(x + sampleOffset + i) % m_rxBufLength] - dcOffset; + sampleSum += m_rxBuf[(x + sampleOffset + i + m_rxBufLength) % m_rxBufLength] - dcOffset; sampleIdxs.append((x + sampleOffset + i) % m_rxBufLength); } int symbol = sampleSum >= 0.0f ? 1 : 0;