Skip to content

v4.0.24.1 — UCS-2 UDH skip + review fix (305/3 host test)

Choose a tag to compare

@xiangwhy xiangwhy released this 23 Jun 03:57

v4.0.24.1 — UCS-2 UDH skip + review fix

主改动 (3 commits, 1 spec)

  • 86df7b4 fix(sms): UCS-2/8-bit decode 路径 skip UDH (dtacIR concat 9 段 乱码修复) — main.cpp:1894 caller 加 pdu_udh_offset_ex
  • 2f8f32e fix(sms): UDH skip 加 udhi gate — 防单条 SMS 第一字节被误判 UDHL
  • ae61e72 chore: bump FW_VERSION v4.0.23 → v4.0.24

v4.0.24.1 review fix batch (commit 2014d05)

8 finding 全修 (3 high + 1 medium + 4 low cleanup):

  • Finding 1 (high)pdu_udh_offset_ex 加 ML307 stripped-UDHL guard (8-bit IEI=0x00 + 16-bit IEI=0x08 strict total/seq 验证)
  • Finding 2 (high)main.cpp:1971 7-bit fallback 也用 dataHex (跳过 UDH concat IE 头)
  • Finding 3 (medium)pdu_udh_offset_ex 加 strict total/seq 验证 (顺手修 finding 1 防 port IE 误判)
  • Finding 4 — 删 dead dataByteLen 变量 (-Wunused-variable)
  • Finding 5 — 加 ESP_LOGW 提示 truncated PDU / UDHL>140 / non-hex
  • Finding 6 — 删 pdu_udh_offset_ex UDHL re-parse 重复 (pdu_ud_offset_ex 已 parse)
  • Finding 8 — 加 fixture J (8-bit concat stripped) + K (16-bit concat stripped) TDD red

finding 7 (strstr('0804'/'0003') pre-existing latent bug) 留 v4.0.24+ 考虑。

验证

  • host test 305 PASS / 3 FAIL (D/E/F 仍 FAIL = v4.0.23 strict-DCS 撤回 历史 reference, 不动)
  • fixture J pre-fix got 38 (Ԁλँ prefix + 38 bytes), post-fix PASS (n=11 "Hello World")
  • fixture K pre-fix got 29 (丢前 3 bytes), post-fix PASS (n=11 "Hello World")
  • 已烧, 当前生产

约束守住

  • 0 改 STK / NVS / OTA / WiFi / push 路径
  • 0 改 7-bit 主路径 (numChars-=7 仍 strstr 检测, 跟 spec 决策一致)
  • 0 改 sniff helper (looks_like_ucs2_be / is_strict_utf8)
  • 0 改 stash_udh_part (用旧 pdu_udh_offset)
  • bump 严格 2 处 (FW_VERSION 宏 + 主页 app.h fw-tag)