From ce9ec8ced74f60e83e93169e16509e8c39d76e7d Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 8 Aug 2026 13:14:17 +0200 Subject: [PATCH] Fix off-by-one PRN guard in GPS/SBAS code generation --- src/algorithms/libs/gps_sdr_signal_replica.cc | 4 ++-- src/algorithms/libs/sbas_signal_replica.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/algorithms/libs/gps_sdr_signal_replica.cc b/src/algorithms/libs/gps_sdr_signal_replica.cc index 1f29e2850..6f45df322 100644 --- a/src/algorithms/libs/gps_sdr_signal_replica.cc +++ b/src/algorithms/libs/gps_sdr_signal_replica.cc @@ -45,7 +45,7 @@ void gps_l1_ca_code_gen_int(own::span dest, int32_t prn, uint32_t chip_ // compute delay array index for given PRN number if (120 <= prn && prn <= 138) { - prn_idx = prn - 88; // SBAS PRNs are at array indices 31 to 50 (offset: -120+33-1 =-88) + prn_idx = prn - 88; // SBAS PRNs are at array indices 32 to 50 (offset: -120+33-1 =-88) } else { @@ -53,7 +53,7 @@ void gps_l1_ca_code_gen_int(own::span dest, int32_t prn, uint32_t chip_ } // A simple error check - if ((prn_idx < 0) || (prn_idx > 51)) + if ((prn_idx < 0) || (prn_idx > 50)) { return; } diff --git a/src/algorithms/libs/sbas_signal_replica.cc b/src/algorithms/libs/sbas_signal_replica.cc index 8d788a7c6..c583b4ce5 100644 --- a/src/algorithms/libs/sbas_signal_replica.cc +++ b/src/algorithms/libs/sbas_signal_replica.cc @@ -6,7 +6,7 @@ * * SBAS PRN codes (120–138) are generated by the GPS L1 C/A code generator * using SBAS-specific G2 initial state delays (index offset -88 into the - * delays table, covering indices 31..50 for PRN 120..138). + * delays table, covering indices 32..50 for PRN 120..138). * * ----------------------------------------------------------------------------- *