v4.0.24.1 — UCS-2 UDH skip + review fix (305/3 host test)
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:1894caller 加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:19717-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_exUDHL 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)