From 3f34b33c2db98ea9ee8317b512bef88e2f1d1222 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Tue, 28 Apr 2026 10:36:55 +0800 Subject: [PATCH] =?utf8?q?4G=20ota=E5=8D=87=E7=BA=A7=E6=97=B6=EF=BC=8C?= =?utf8?q?=E6=B7=BB=E5=8A=A0=E8=93=9D=E7=89=99=E7=89=88=E6=9C=AC=E4=BD=9C?= =?utf8?q?=E4=B8=BA=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0=E3=80=82=E5=AE=9E?= =?utf8?q?=E7=8E=B04G=E5=9B=BA=E5=AE=9A=E7=89=88=E6=9C=AC=E5=8D=87?= =?utf8?q?=E7=BA=A7=E7=9A=84=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c | 9 ++++++--- code/sdk/zhihui/utils/custom_utils.c | 7 +++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c index 6693d5f81..9dc055e71 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c @@ -1535,14 +1535,17 @@ void ln_is_cat1_ota_upgrade_check(void) return; } - printf("[OTA] Modem固件版本: %s\n", version); // 构建版本字符串 + uint8_t _major,_mid,_minor; char version1_str[64] = {0}; char version2_str[64] = {0}; - snprintf(version1_str, sizeof(version1_str), "%sV%d_1", version, uapi_get_py_ver()); - snprintf(version2_str, sizeof(version2_str), "%sV%d_2", version, uapi_get_py_ver()); + uapi_get_fw_version(&_major,&_mid,&_minor); + printf("[OTA] Modem固件版本: %s\n", version); + snprintf(version1_str, sizeof(version1_str), "%d%sV%d_1",_minor, version, uapi_get_py_ver()); + snprintf(version2_str, sizeof(version2_str), "%d%sV%d_2",_minor, version, uapi_get_py_ver()); + // 获取CAT1 OTA升级URL ret = ln_ota_get_task_http_CAT1(uapi_ln_get_device_id(), uapi_ln_get_device_token(), version1_str, g_ln_last_package_url_new1); if(ERRCODE_SUCC != ret) { diff --git a/code/sdk/zhihui/utils/custom_utils.c b/code/sdk/zhihui/utils/custom_utils.c index 13a31b464..d26afa0e7 100644 --- a/code/sdk/zhihui/utils/custom_utils.c +++ b/code/sdk/zhihui/utils/custom_utils.c @@ -2060,9 +2060,11 @@ errcode_t uapi_get_fw_version(uint8_t *_major, uint8_t *_mid,uint8_t *_minor) return ERRCODE_FAIL; const char* version = get_version_string(); + printf("version: %s\n", version); uint8_t tmpverlen = strlen(version); if (tmpverlen>20) return ERRCODE_FAIL; - char * tmpver = (char*) malloc(tmpverlen); + /* strtok_r/atoi 依赖 '\0' 结束符,必须多分配 1 字节并补齐结尾 */ + char * tmpver = (char*) malloc((size_t)tmpverlen + 1); if (tmpver==NULL) { *_major = 1; @@ -2070,7 +2072,8 @@ errcode_t uapi_get_fw_version(uint8_t *_major, uint8_t *_mid,uint8_t *_minor) *_minor = 0; }else{ - memcpy_s(tmpver,tmpverlen,version,tmpverlen); + memcpy_s(tmpver, (size_t)tmpverlen + 1, version, tmpverlen); + tmpver[tmpverlen] = '\0'; char *pchStrTmpIn = NULL; char *tokbuf=NULL; tokbuf=strtok_r(tmpver,".",&pchStrTmpIn); -- 2.17.1