From 598c3094045da95afd184b4dbb8577c396ef359c Mon Sep 17 00:00:00 2001 From: Caisking Date: Fri, 26 Dec 2025 21:18:58 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96NMEA=E7=9A=84=E8=B6=8A?= =?utf8?q?=E7=95=8C=E9=A3=8E=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/services/gnss/src/NMEA0183.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/sdk/zhihui/services/gnss/src/NMEA0183.c b/code/sdk/zhihui/services/gnss/src/NMEA0183.c index 46bd78f2d..d45ad1309 100644 --- a/code/sdk/zhihui/services/gnss/src/NMEA0183.c +++ b/code/sdk/zhihui/services/gnss/src/NMEA0183.c @@ -144,6 +144,11 @@ static unsigned char nmea_term_complete(gps_nmea_t* pnmea, gps_data_t* pdata) // handle the last term in a message if (pnmea->is_checksum_term) { + // 检查校验和字段长度,防止数组越界访问 + if (pnmea->term_offset < 2) { + // 校验和字段长度不足,返回0表示解析失败 + return 0; + } unsigned char checksum = 16 * from_hex(pnmea->term[0]) + from_hex(pnmea->term[1]); /* 检验信息段是否完整无错,如果校验通过,则将解析得到的数据保存,并提供给用户调用*/ -- 2.17.1