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) {
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;
*_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);