YuLi
867fc9ce83
fix: harden AAC RTP decoder payload bounds checks (#4788)
### Motivation
- 修复 `ext-codec/AACRtp.cpp` 中的越界读取问题,避免在处理异常短的 AAC RTP payload 时读取
`ptr[1]` 导致堆越界(CWE-125)。
- 在解码器层对输入数据做前置且严格的长度校验以防止网络可达的、未认证或畸形的 RTP 包触发服务可用性影响。
### Description
- 在 `AACRtpDecoder::inputRtp` 中对 `payload_size` 强制要求至少为 2 字节以保障对
AU-Header-Length 的安全读取。
- 添加对 AU-header 表的完整性检查:计算 `au_headers_size = au_header_count * 2` 并在访问
AU-header 或做指针偏移前验证可用字节,否则拒绝该包。
- 在 `flushData()` 中将帧长度判断移到前面,先检查 `_frame->size() > ADTS_HEADER_LEN` 再访问
`ptr[0]`/`ptr[1]`,避免短帧情况下的顺序求值导致的越界读取。
### Testing
- 运行 `git diff --check`,无格式/冲突检查错误并通过。
- 运行配置命令 `cmake -S . -B build -DENABLE_TESTS=OFF -DENABLE_WEBRTC=OFF
-DENABLE_SRT=OFF -DENABLE_FFMPEG=OFF -DCMAKE_BUILD_TYPE=Debug`,CMake
配置成功。
- 运行构建 `cmake --build build --target zlmediakit -j2`,目标构建完成且
`zlmediakit` 目标成功编译。
------
[Codex
Task](https://chatgpt.com/codex/cloud/tasks/task_e_6a63e2a088ac8320ac3864716f13c995)
2026-07-27 22:50:23 +08:00
..
2026-01-24 23:57:36 +08:00
2024-09-19 14:53:50 +08:00
2024-03-22 20:50:07 +08:00
2024-09-19 14:53:50 +08:00
2026-07-27 22:50:23 +08:00
2024-09-19 14:53:50 +08:00
2025-10-16 19:26:46 +08:00
2026-01-08 21:18:00 +08:00
2025-10-16 19:26:46 +08:00
2025-09-26 21:28:12 +08:00
2025-01-03 11:33:35 +08:00
2026-01-08 21:18:00 +08:00
2025-10-16 19:26:46 +08:00
2025-05-11 11:18:34 +08:00
2024-12-28 10:41:52 +08:00
2026-07-23 11:43:21 +08:00
2024-12-04 10:46:37 +08:00
2024-09-19 14:53:50 +08:00
2024-09-19 14:53:50 +08:00
2024-09-19 14:53:50 +08:00
2024-09-19 14:53:50 +08:00
2026-07-23 11:43:21 +08:00
2024-09-19 14:53:50 +08:00
2024-09-19 14:53:50 +08:00
2024-09-19 14:53:50 +08:00
2026-05-03 19:50:09 +08:00
2024-09-19 14:53:50 +08:00
2024-11-30 08:23:10 +08:00
2024-09-19 14:53:50 +08:00
2026-06-14 12:01:47 +08:00
2024-09-19 14:53:50 +08:00
2024-11-30 08:23:10 +08:00
2024-09-19 14:53:50 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2026-03-11 22:17:48 +08:00
2024-12-03 10:40:24 +08:00
2024-12-03 10:40:24 +08:00
2024-12-03 10:40:24 +08:00
2024-12-03 10:40:24 +08:00
2026-01-08 21:18:00 +08:00
2025-10-16 19:26:46 +08:00
2025-10-19 11:56:35 +08:00
2025-10-16 19:26:46 +08:00
2025-10-16 19:26:46 +08:00
2026-01-08 21:18:00 +08:00
2026-01-08 21:18:00 +08:00
2026-01-08 21:18:00 +08:00
2025-10-16 19:26:46 +08:00
2026-01-08 21:18:00 +08:00
2026-03-30 10:14:29 +08:00
2025-10-16 19:26:46 +08:00
2025-10-19 11:56:35 +08:00
2025-10-16 19:26:46 +08:00