openharmony_ci
|
7e99c97657
|
!3365 merge 代码检视 into master
fix 0814_issue 告警
Created-by: xiyingxin
Commit-by: xiyingxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3365
|
2026-08-20 10:20:47 +08:00 |
|
openharmony_ci
|
ae277169bd
|
!3380 merge master into master
issue2654
Created-by: Liyimengg
Commit-by: LiYimeng
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3380
|
2026-08-19 19:13:47 +08:00 |
|
LiYimeng
|
b6b549003f
|
issue2654
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
|
2026-08-19 16:49:04 +08:00 |
|
红袍小恶魔
|
45bd7d8012
|
修复 getDistributedSessionController 权限校验并补充相关日志
- HandleGetDistributedSessionControllersInner 权限校验由 CHECK_SYSTEM_PERMISSION
改为 CHECK_MEDIA_RESOURCES_PERMISSION,与接口声明的
@permission ohos.permission.MANAGE_MEDIA_RESOURCES 对齐,并补充
HISYSEVENT_SECURITY 审计日志。
- GetSessionDescriptorsBySessionId 的 HISYSEVENT_SECURITY 改用本地 uid/pid。
- 调整 STATE_DISCONNECTED 缩进格式。
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-08-19 10:27:37 +08:00 |
|
openharmony_ci
|
71c95733bb
|
!3374 merge fix-0817 into master
增加权限校验
Created-by: weixin_43563670
Commit-by: weixin_43563670
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3374
|
2026-08-18 09:48:17 +08:00 |
|
weixin_43563670
|
b876790f35
|
update: 更新文件 napi_avsession_manager.cpp
Signed-off-by: weixin_43563670 <diyujia1@huawei.com>
|
2026-08-17 21:14:46 +08:00 |
|
weixin_44014140
|
f94c4f4642
|
add moduleId && submoduleId
Signed-off-by: weixin_44014140 <chenyuming12@h-partners.com>
|
2026-08-17 20:44:48 +08:00 |
|
weixin_43563670
|
b37caabfb8
|
update: 更新文件 napi_avsession_manager.cpp
Signed-off-by: weixin_43563670 <diyujia1@huawei.com>
|
2026-08-17 18:10:20 +08:00 |
|
weixin_43563670
|
fd059f59b2
|
增加权限校验
Signed-off-by: weixin_43563670 <diyujia1@huawei.com>
|
2026-08-17 17:52:44 +08:00 |
|
xiyingxin
|
cf2ae944c2
|
fix 0814_issue 告警
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
|
2026-08-16 17:31:16 +08:00 |
|
xuhy
|
a4c645beae
|
t
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-08-13 15:58:48 +08:00 |
|
xuhy
|
d85957bc43
|
revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-08-13 15:04:19 +08:00 |
|
xuhy
|
2ca1b14113
|
revised build.gn
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-08-10 19:14:34 +08:00 |
|
xuhy
|
3d6d76d97d
|
revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-08-10 19:01:19 +08:00 |
|
xuhy
|
71e91c2c29
|
revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-08-10 18:08:40 +08:00 |
|
xuhy
|
0fc996fb20
|
revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-08-08 15:14:14 +08:00 |
|
openharmony_ci
|
75cb61e9cf
|
!3326 merge security-fix-lyc into master
修复avsession模块多项并发安全问题(issue #2578部分项)
Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 关联 Issue
fix #2728
本 PR 修复 issue #2728 所列全部 13 个并发缺陷项(含第 7 项既有 ABBA 死锁),合并后请关闭该 issue。
## 修改内容
**services/session/server/ 服务核心层**
- **AVRouterImpl**:`castHandleToInfoMap_`/`providerManagerMap_` 全路径加锁;抽取 `GetCastProvider`/`GetHwProvider` 两个私有帮助函数,统一"锁内取 shared_ptr 快照、锁外调用"(14+3 处调用点收敛);`Init`/`Release` 的 SDK 调用全部移出锁外,仅赋值/置空在锁内;listener 回调锁外或 EventHandler 异步执行,消除锁序反转;修复 `OnCastStateChange` 持 `servicePtrLock_` 调 `checkEnableCast` 的 ABBA 死锁(快照后锁外调用)
- **HwCastProvider**:监听器列表遍历改"锁内取快照、锁外回调";`QueryCastSessionId` 补 `mutexLock_`
- **SoftbusSessionManager**:`ObtainPeerDeviceId` 补 `socketLock_`,`operator[]` 改 `find`(避免隐式插入默认项)
- **AVSessionUsersManager**:`GetContainerFromAll` 补 `userLock_`,消除惰性初始化竞争导致的会话丢失
- **AVSessionService**:`UpdateTopSession` 锁内取 `topSession_` 的 sptr 副本,消除锁外读 UAF
- **MigrateAVSessionProxy**:心跳/检查 worker 锁内取 `deviceId_` 快照
**services/session/adapter/**
- **AppManagerAdapter**:新增 `appStateChangeObserverLock_`,observer 快照后锁外调用
**frameworks/js/napi(ArkTS 绑定)**
- **NapiAVSession(握手按调用私有化)**:`SetAVPlaybackState` 改用 `PlaybackStateSyncContext{mtx,cv,ready,ret}`,删除 5 个进程级 static,根治跨会话返回码串扰;原生调用保持锁内执行(慢 IPC 不误超时),async 侧谓词等待 1s 有界预算;postTask 失败立即定死结果
- **NapiAVSession(静态暂存指针)**:新增 `napiAVSessionLock_` 保护 `napiAVSession_`,`NewInstance`/`ReCreateInstance` 锁内仅做指针赋值/快照,JS/IPC 调用全部锁外,无死锁风险
**interfaces + frameworks/common**
- **AVSessionPixelMap**:`bufferLock_` 改 `mutable`,`Marshalling` 加锁
**utils/**
- **HashCalculator**:全局 `g_context` 改 `static thread_local`,消除跨线程摘要互相破坏
- **AVSessionRadar**:新增 `deviceInfoLock_` 保护设备 id 惰性初始化与清空
## 自测
- 全部修改均为锁保护/快照/发布顺序类小步改动,已逐文件复查 diff 并做锁序审计(与现状代码组合无死锁)
- 建议在构建环境执行:avsession 相关 UT/FUZZ,以及 `CASTPLUS_CAST_ENGINE_ENABLE`、`DSOFTBUS_ENABLE` 两种开关组合编译
See merge request: openharmony/multimedia_av_session!3326
|
2026-08-07 18:20:25 +08:00 |
|
openharmony_ci
|
19daf090ff
|
!3236 merge 0715userId into master
add userId for napi controller
Created-by: zhang-minmin-jason
Commit-by: zhang-minmin-jason
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3236
|
2026-08-04 19:13:07 +08:00 |
|
zhang-minmin-jason
|
cf545dca80
|
add userId for napi controller
Signed-off-by: zhang-minmin-jason <zhangminmin9@h-partners.com>
|
2026-08-03 12:15:02 +08:00 |
|
红袍小恶魔
|
c43e48f721
|
修复avsession模块多项并发安全问题(issue #2578部分项)
针对issue #2578中services/napi/interfaces/utils层的并发缺陷进行修复:
- No.07/08 AVRouterImpl: castHandleToInfoMap_/providerManagerMap_全路径加锁,抽取
GetCastProvider/GetHwProvider统一锁内取shared_ptr快照;Init/Release的SDK调用
全部移出锁外,仅赋值/置空在锁内;修复OnCastStateChange持servicePtrLock_调用
checkEnableCast形成的既有ABBA死锁(快照后锁外调用)
- No.09 HwCastProvider: 监听器遍历改锁内取快照+锁外回调,QueryCastSessionId加锁
- No.10 SoftbusSessionManager: ObtainPeerDeviceId加socketLock_,operator[]改find
- No.11 AVSessionUsersManager::GetContainerFromAll补userLock_,消除惰性初始化竞争
- No.13 UpdateTopSession锁内取topSession_的sptr副本,消除锁外读UAF
- No.16 MigrateAVSessionProxy心跳worker锁内取deviceId_快照
- No.17 AppManagerAdapter新增appStateChangeObserverLock_,快照+锁外调用
- No.20 NapiAVSession的SetAVPlaybackState握手按调用私有化(PlaybackStateSyncContext
含mtx/cv/ready/ret),删除5个进程级static,消除跨会话返回码串扰;原生调用保持锁内
执行,async侧谓词等待1s有界预算;postTask失败立即定死结果
- No.21 新增napiAVSessionLock_保护napiAVSession_,NewInstance/ReCreateInstance
锁内仅做指针赋值/快照,JS/IPC调用全部锁外
- No.24 AVSessionPixelMap::Marshalling加锁(bufferLock_改mutable)
- No.25 HashCalculator全局g_context改static thread_local,消除跨线程摘要破坏
- No.26 AVSessionRadar新增deviceInfoLock_保护设备id惰性初始化与清空
注: issue中No.01-06(PcmCastSession castLock_组)及pcmCastSession_附加项不在本次
提交范围,将后续单独提交;No.12/14/15/18/19/22/23经核实当前代码已修复,无需变更。
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-08-02 18:39:28 +08:00 |
|
openharmony_ci
|
984b745cd4
|
!3311 merge security-fix-lyc into master
修复multimedia_av_session安全审查发现的多处缺陷
Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: 关联issue: #2718
## 背景
针对 multimedia_av_session 安全审查发现的问题进行兼容性修复,不引入非兼容变更。
## 修复内容
(详见 #2718)
### 输入校验
- AVCastControlCommand::SetLoopMode 补上界校验(原仅校验下界,与sibling一致)
- AVControlCommand::SetSpeed 增加 NaN/+Inf 校验(IEEE754下 NaN/Inf 绕过 <=0)
- OH_AVSession_GetPlaybackSpeed 校验 speed 有限性/范围后再 static_cast,修正日志 typo
- TaiheAVCastControllerCallback::IsCallbacksEmpty 补 event 边界校验
### 并发/资源
- OHAVSessionPlaybackState 缓存字段改 std::atomic,消除 GetPlaybackState 跨线程数据竞争
- OHAVSessionCallbackImpl::UnregisterSetLoopModeCallback 补 erase,修复回调残留 UAF
- OH_AVSession_UnregisterOutputDeviceChangeCallback 先取锁再读回调,消除 TOCTOU
- OH_AVSession_RegisterToggleFavoriteCallback 传播 CheckAndRegister 返回值,避免掩盖注册失败
- AVSessionManagerImpl::GetService 死亡接收者分配失败时清空 service_,允许重试
- AVSessionManagerImpl serviceStartCallback_ 全路径加锁,消除与 OnServiceStateChange 的竞争
### 异常安全/资源泄漏
- OH_AVSession_GetAVCastController 改用 new(std::nothrow),避免 bad_alloc 跨 C ABI
- OHAVCastController::CheckAndRegister 在 RegisterCallback 失败时重置回调,避免重试静默失效
- NapiUtils::WriteCallback 补 null/零检查;CurlSetRequestOptions HTTP 错误时清理 curl 句柄,修复泄漏
## 验证
- 逐项对照实际源码核实(扫描器行号已过期,按函数名定位)
- 均为兼容性内部修改,无公共 API/ABI/签名变更
- 建议本仓构建环境编译 + 跑相关 UT(napi_avsession/ohavsession/avsession_manager 模块)确认
合并后请关闭关联 issue #2718。
See merge request: openharmony/multimedia_av_session!3311
|
2026-07-30 22:29:27 +08:00 |
|
openharmony_ci
|
a1de613916
|
!3313 merge 信息泄露 into master
fix security warning 0729
Created-by: xiyingxin
Commit-by: xiyingxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3313
|
2026-07-30 22:09:57 +08:00 |
|
openharmony_ci
|
47eba698dd
|
!3297 merge zhenggai into master
依赖ace_napi整改
Created-by: xuhy2
Commit-by: xuhy2;xuhy
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3297
|
2026-07-30 20:43:34 +08:00 |
|
xiyingxin
|
e70ef6ad1b
|
fix security warning 0729
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
|
2026-07-30 14:45:32 +08:00 |
|
红袍小恶魔
|
6ece6914e7
|
修复avsession安全审查发现的多处缺陷
针对安全审查发现的问题进行兼容性修复(不引入非兼容变更):
输入校验:
- AVCastControlCommand::SetLoopMode 补上界校验(原仅校验下界,与sibling一致)
- AVControlCommand::SetSpeed 增加 NaN/+Inf 校验(IEEE754下NaN/Inf绕过<=0)
- OH_AVSession_GetPlaybackSpeed 校验speed有限性/范围后再static_cast,修正日志typo
- TaiheAVCastControllerCallback::IsCallbacksEmpty 补event边界校验
并发/资源:
- OHAVSessionPlaybackState缓存字段改std::atomic,消除GetPlaybackState跨线程数据竞争
- OHAVSessionCallbackImpl::UnregisterSetLoopModeCallback补erase,修复回调残留UAF
- OH_AVSession_UnregisterOutputDeviceChangeCallback先取锁再读回调,消除TOCTOU
- OH_AVSession_RegisterToggleFavoriteCallback传播CheckAndRegister返回值,避免掩盖注册失败
- AVSessionManagerImpl::GetService死亡接收者分配失败时清空service_,允许重试
- AVSessionManagerImpl serviceStartCallback_全路径加锁,消除与OnServiceStateChange的竞争
异常安全/资源泄漏:
- OH_AVSession_GetAVCastController改用new(std::nothrow),避免bad_alloc跨C ABI
- OHAVCastController::CheckAndRegister在RegisterCallback失败时重置回调,避免重试静默失效
- NapiUtils::WriteCallback补null/零检查;CurlSetRequestOptions HTTP错误时清理curl句柄,修复泄漏
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-29 21:34:40 +08:00 |
|
openharmony_ci
|
9a34f65171
|
!3306 merge master into master
IPC warning
Created-by: Liyimengg
Commit-by: LiYimeng
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3306
|
2026-07-29 19:26:41 +08:00 |
|
LiYimeng
|
209986ed33
|
IPC warning
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
|
2026-07-29 10:59:03 +08:00 |
|
ccfriend
|
9567308419
|
revert xts issue
Signed-off-by: ccfriend <chengcheng14@huawei.com>
|
2026-07-28 21:44:38 +08:00 |
|
ccfriend
|
21cf615a67
|
modify xts issue without cast enabled
Signed-off-by: ccfriend <chengcheng14@huawei.com>
|
2026-07-28 15:46:47 +08:00 |
|
xuhy
|
08836bf3dd
|
zhenggai
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
|
2026-07-26 19:15:25 +08:00 |
|
openharmony_ci
|
7d39fea762
|
!3289 merge master2 into master
修复IPC输入校验缺失的安全隐患
Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 关联Issue
Close #2660
## 修改内容
修复安全审查发现的IPC输入校验缺失问题:
1. **AVCastControlCommand/AVControlCommand::Unmarshalling**:统一提取SetParamFromParcel辅助函数,命令字读取失败或SetCommand校验失败返回nullptr(防止截断Parcel伪造PLAY等合法值命令),各参数setter返回值向上透传,非法参数释放并返回nullptr(调用方均已判空);参数本身已初始化为0/空串,读取失败不会产生未初始化数据
2. **AVCastControlCommand::SetVolume**:补充volume非负校验,与其他setter保持一致
3. **AVFileDescriptor**:成员补充默认初始化,消除AVMediaDescription容错反序列化路径下读取失败时的未初始化数据风险;保持其原有容错读取语义,兼容跨版本/分布式场景下对端字段缺失的情况
4. **AVPlaybackState::Unmarshalling**:增加state范围及IsValidLoopMode校验
5. **AVMetaData**:WriteDrmSchemes补充与读端对称的≤10上限校验;Unmarshalling及SetDisplayTags补充displayTags范围校验(0~DISPLAY_TAG_ALL)
6. **AudioStreamInfo::ReadFromParcel**:改用带返回值的读取接口并逐项校验;**AudioCapabilities::WriteToParcel**:补充与读端对称的<1000上限校验
7. **hw_cast_stream_player**:closingCreditsPosition负值钳制为0,修复int32转uint32回绕
## 兼容性说明
- 所有Unmarshalling失败返回nullptr的路径,Stub/Proxy调用方均已判空
- 合法枚举取值与公开API(d.ts、C API)完全对齐,合法调用行为不变
- 仅新增校验逻辑与私有辅助函数,无ABI/行为非兼容变更
## 自检结果
- [x] 现有UT均使用合法参数,不受影响
- [x] 修改遵循OpenHarmony编码规范(CHECK_AND_RETURN_RET_LOG、K&R风格、成员命名、函数长度≤50行、圈复杂度≤20)
See merge request: openharmony/multimedia_av_session!3289
|
2026-07-24 20:20:27 +08:00 |
|
红袍小恶魔
|
21d71758af
|
修复static未wrap,native判空导致的xtsfail
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-24 18:48:18 +08:00 |
|
红袍小恶魔
|
f6c7403e4d
|
增加ut
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-24 17:56:09 +08:00 |
|
红袍小恶魔
|
33eb43c9c3
|
修复整数溢出与返回值未检查安全告警
修复整数溢出与返回值未检查安全告警
- avcast_control_command: 修复SEEK命令序列化WriteInt64与反序列化ReadInt32不一致导致Parcel解析错位
- avmedia_description: Marshalling增加icon大小10MB上限校验防size_t到int32_t截断; SetMediaSize负值钳制为0
- avmeta_data: WriteToParcel对单张图片先校验10MB上限再求和,防两int相加溢出绕过maxImageSize检查
- hw_cast_stream_player: duration负值钳制为0后再转uint32_t,避免-1语义丢失为4294967295
- napi_async_callback: napi_send_event失败时释放DataContext,修复内存泄漏
- napi_async_work: 检查napi_create_async_work返回值,失败时抛错返回,避免无效work入队崩溃
- napi_avcast_controller_callback: 检查napi_create_threadsafe_function返回值
- napi_avsession_callback: 新增HandleEvent int64_t重载,消除OnFastForward/OnRewind的int64到int32窄化截断
- avsession_proxy: GetAllCastDisplays增加displayState枚举范围校验,非法值返回ERR_MARSHALLING
- taihe/napi_avsession_manager: SendSystemControlCommand故障日志变量初始化,mode默认值统一为LOOP_MODE_UNDEFINED
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-24 16:27:45 +08:00 |
|
openharmony_ci
|
bc8b800c78
|
!3279 merge master3nullptr2 into master
修复空指针解引用安全告警
Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 背景
安全评审扫描出多处空指针解引用告警,经逐条对照代码评估,确认需要修复的均为防御性判空/参数修正,不引入非兼容变更。
关联Issue:#2672(合并后关闭)
## 修复内容
1. CJ侧ConvertNativeToCJStruct对GetExtras/GetDescription返回值判空,空时置零CJ结构体并跳过转换
2. AVCallMetaData::Unmarshalling读取失败时释放对象并返回nullptr,与AVMetaData/AVPlaybackState行为一致,避免返回部分初始化对象
3. AVMetaData::ReadDrmSchemes增加metaData指针判空
4. ContextBase析构增加selfRef判空;GetCbInfo在napi_unwrap成功后校验native非空,单点防护全部调用方
5. NapiAVCallMetaData::SetMediaImageUri补充property判空,与SetName/SetPhoneNumber一致
6. 修复NapiAVCastController::ConstructorCallback中napi_wrap第5/6参数传反问题
7. AVCastControllerProxy::Start/Prepare增加GetDescription判空;AVFileDescriptor成员增加默认初始化
8. NapiQueueItem::SetDescription增加GetDescription判空
9. NapiAVCastControllerCallback::readDataSrc增加mem判空
10. NapiAVSession::OnEvent/SetAVCallState/SetAudioStreamId/SendCustomData/GetController/GetOutputDeviceSync增加napiSession判空及status检查
11. NapiAVSessionController三个Sync函数GetCbInfo后补充status检查与napiController判空
See merge request: openharmony/multimedia_av_session!3279
|
2026-07-24 15:22:13 +08:00 |
|
红袍小恶魔
|
18d581b230
|
修复投播失败
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-24 14:11:12 +08:00 |
|
红袍小恶魔
|
c5de222e1b
|
修复static没有wrap导致native被异常判空
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-24 13:22:04 +08:00 |
|
openharmony_ci
|
e005d7e071
|
!3263 merge master5lock into master
修复napi层并发数据竞争与迭代器失效安全隐患
Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 关联Issue
Closes #2683
## 变更内容
修复napi层(frameworks/js/napi/session)多处并发数据竞争与迭代器失效缺陷:
1. **isValid_数据竞争**:isValid_统一改为`std::shared_ptr<std::atomic<bool>>`(NapiAVControllerCallback、NapiAVSessionCallback、NapiAVCastControllerCallback、NapiAVCastPickerHelper、NapiSessionListener及NapiAsyncCallback签名适配),消除析构写入与异步回调读取间的bool数据竞争;
2. **迭代器失效UB**:checkCallbackValid异步lambda由按值捕获std::list迭代器改为捕获napi_ref值比较,消除RemoveCallback移除节点后比较失效迭代器的未定义行为;
3. **sessionDestroyCallback_竞争**:OnSessionDestroy访问sessionDestroyCallback_增加lock_保护,锁内取出置空、锁外调用,消除std::function跨线程读写竞争及回调丢失风险;
4. **playBackStateRet_竞争**:静态变量playBackStateRet_写入时持有syncMutex_,与读取侧同一互斥域,消除SetAVPlaybackState同步/异步执行器间数据竞争;
5. **析构清静态成员未加锁**:~NapiAVSession清空currentNapiSession_/currentSessionId_补充currentNapiSessionMutex_保护;
6. **session_并发访问**:SetAVQueueTitle/GetAVCastController采用sessionHolder_模式,JS线程持lock_捕获session强引用,executor不再访问napiSession->session_,消除与Destroy并发置空的竞争;
7. **outputDeviceInfo_竞争**:新增outputDeviceInfoMutex_保护全局变量outputDeviceInfo_的跨线程读写。
## 兼容性说明
所有修改均为内部实现调整,不涉及JS接口及行为变更,无非兼容变更。
## 测试
- [ ] 编译通过
- [ ] 已有UT/ST用例通过
See merge request: openharmony/multimedia_av_session!3263
|
2026-07-24 12:14:48 +08:00 |
|
红袍小恶魔
|
8f33e3fa7b
|
修复空指针解引用安全告警
1. CJ侧ConvertNativeToCJStruct对GetExtras/GetDescription返回值判空,空时置零CJ结构体并跳过转换
2. AVCallMetaData::Unmarshalling读取失败时释放对象并返回nullptr,与AVMetaData/AVPlaybackState行为一致,避免返回部分初始化对象
3. AVMetaData::ReadDrmSchemes增加metaData指针判空
4. ContextBase析构增加selfRef判空;GetCbInfo在napi_unwrap成功后校验native非空,单点防护全部调用方
5. NapiAVCallMetaData::SetMediaImageUri补充property判空,与SetName/SetPhoneNumber一致
6. 修复NapiAVCastController::ConstructorCallback中napi_wrap第5/6参数传反问题
7. AVCastControllerProxy::Start/Prepare增加GetDescription判空;AVFileDescriptor成员增加默认初始化
8. NapiQueueItem::SetDescription增加GetDescription判空
9. NapiAVCastControllerCallback::readDataSrc增加mem判空
10. NapiAVSession::OnEvent/SetAVCallState/SetAudioStreamId/SendCustomData/GetController/GetOutputDeviceSync增加napiSession判空及status检查
11. NapiAVSessionController三个Sync函数GetCbInfo后补充status检查与napiController判空
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-23 21:31:59 +08:00 |
|
openharmony_ci
|
851507e889
|
!3269 merge master6others into master
修复安全评审发现的多处安全隐患
Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 关联Issue
close #2686
## 变更内容
修复安全评审发现的多处安全隐患:
1. **av_shared_memory_base**:fd判断统一以`fd_<0`为无效(`fd_>=0`有效),修复fd=0合法描述符无法关闭及Init误判本地/远端分支问题
2. **av_file_descriptor**:成员fd_/offset_/length_增加默认值(-1/0/0),消除未初始化栈数据经IPC泄漏风险
3. **avcall_state**:Unmarshalling增加avCallState_枚举范围校验[AVCALL_STATE_IDLE, AVCALL_STATE_MAX),非法IPC输入返回nullptr
4. **avplayback_state**:Unmarshalling增加state_枚举范围校验,阻断非法值穿透Stub->AVSessionItem->控制器调用链
5. **avsession_pixel_map_adapter**:CopyPixMapToDst DMA分支增加dstPixels/srcPixels空指针校验、height/rowBytes/rowStride负值校验、uint64总量防溢出校验,memcpy_s逐行传入剩余缓冲区大小,消除堆溢出隐患
6. **napi_avsession_callback**:AddCallback中asyncCallback_分配失败路径补充napi_delete_reference,修复napi_ref泄漏
7. **hw_cast_stream_player**:GetRecommendedResolutionLevel增加空列表校验,消除std::max_element空区间解引用UB(恶意对端投播设备可致服务崩溃)
8. **remote_session_syncer_impl**:Put/GetAVMetaData改用MessageParcel,消除static_cast向下转型UB
## 兼容性说明
- 仅对非法枚举值/畸形输入增加拒绝逻辑,合法值路径行为不变
- 无接口变更,序列化格式不变,线上混部无风险
## 涉及文件
- frameworks/common/src/av_shared_memory_base.cpp
- frameworks/common/src/avcall_state.cpp
- frameworks/common/src/avplayback_state.cpp
- frameworks/common/src/avsession_pixel_map_adapter.cpp
- frameworks/js/napi/session/src/napi_avsession_callback.cpp
- interfaces/inner_api/native/session/include/av_file_descriptor.h
- services/session/server/hw_cast_stream_player.cpp
- services/session/server/remote/remote_session_syncer_impl.cpp
See merge request: openharmony/multimedia_av_session!3269
|
2026-07-23 19:49:16 +08:00 |
|
openharmony_ci
|
a3137ef1de
|
!3249 merge kongzhizhen into master
nullptr
Created-by: Liyimengg
Commit-by: LiYimeng
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3249
|
2026-07-23 18:57:10 +08:00 |
|
openharmony_ci
|
4d13348336
|
!3243 merge master into master
UAF warning
Created-by: Liyimengg
Commit-by: LiYimeng
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3243
|
2026-07-23 17:34:51 +08:00 |
|
LiYimeng
|
f7c373b058
|
UAF warning
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
|
2026-07-23 11:24:23 +08:00 |
|
红袍小恶魔
|
a35407ff28
|
修复安全评审发现的多处安全隐患
1. av_shared_memory_base:fd判断统一以fd_<0为无效(fd_>=0有效),修复fd=0合法描述符无法关闭及Init误判分支问题
2. av_file_descriptor:成员fd_/offset_/length_增加默认值,消除未初始化栈数据经IPC泄漏风险
3. avcall_state:Unmarshalling增加avCallState_枚举范围校验,非法IPC输入返回nullptr
4. avplayback_state:Unmarshalling增加state_枚举范围校验,阻断非法值穿透调用链
5. avsession_pixel_map_adapter:CopyPixMapToDst DMA分支增加空指针/负值/总量校验,memcpy_s逐行传剩余缓冲区大小,消除堆溢出隐患
6. napi_avsession_callback:AddCallback失败路径补充napi_delete_reference,修复napi_ref泄漏
7. hw_cast_stream_player:GetRecommendedResolutionLevel增加空列表校验,消除max_element空区间解引用UB
8. remote_session_syncer_impl:Put/GetAVMetaData改用MessageParcel,消除static_cast向下转型UB
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-22 21:30:36 +08:00 |
|
红袍小恶魔
|
16c61e7928
|
修复napi层并发数据竞争与迭代器失效安全隐患
1. isValid_改为std::shared_ptr<std::atomic<bool>>,消除析构写入与异步
回调读取间的bool数据竞争(涉及NapiAVControllerCallback、
NapiAVSessionCallback、NapiAVCastControllerCallback、
NapiAVCastPickerHelper、NapiSessionListener及NapiAsyncCallback签名适配)
2. 修复checkCallbackValid异步lambda按值捕获std::list迭代器,在
RemoveCallback移除节点后比较失效迭代器的未定义行为,改为捕获
napi_ref值进行比较
3. NapiAVControllerCallback::OnSessionDestroy访问sessionDestroyCallback_
增加lock_保护,锁内取出置空、锁外调用,消除std::function并发读写竞争
4. 静态变量playBackStateRet_写入时持有syncMutex_,与读取侧同一互斥域,
消除SetAVPlaybackState同步/异步执行器间的数据竞争
5. ~NapiAVSession清空静态成员currentNapiSession_/currentSessionId_时
补充currentNapiSessionMutex_保护
6. SetAVQueueTitle/GetAVCastController采用sessionHolder_模式,JS线程
持锁捕获session强引用,消除与Destroy并发置空session_的竞争
7. 全局outputDeviceInfo_增加outputDeviceInfoMutex_保护,消除
OnOutputDeviceChange与RestartSessionDisconnect跨线程读写竞争
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-22 19:45:58 +08:00 |
|
LiYimeng
|
70295cd045
|
nullptr
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
|
2026-07-22 11:39:31 +08:00 |
|
红袍小恶魔
|
31aae2d50c
|
修复napi层UAF与数据竞争安全隐患
1. NapiAVCastControllerCallback析构时未将isValid_置false,
对象销毁后已排队的异步任务仍会通过有效性检查并访问已释放的this,
存在Use-After-Free风险,析构中补充置位,与NapiAVControllerCallback对齐
2. SetAVMetaData中detach线程持有NapiAVSession裸指针,async work的
selfRef不覆盖detach线程生命周期,JS对象被GC后线程访问悬空指针;
改为捕获session_的weak_ptr与去重ID的shared_ptr,线程不再访问
NapiAVSession对象,Destroy或GC后任务自动安全放弃
3. SetAVMetaData的executor无锁读取latestDownloaded*等成员,
与DoLastMetaDataRefresh持锁写入存在数据竞争,读取与session_
拷贝移入lock_保护;Destroy中session_写操作同步加锁闭合竞争
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-21 19:59:01 +08:00 |
|
红袍小恶魔
|
9a9864082f
|
补充字符串超长时的明确日志提示
NAPI和Taihe层所有字符串字段共用同一个长度解析函数,当字符串超
40960字节时静默返回失败,导致上层日志无法判断失败原因是否为长度
超限,且不同字段超长后现象不一致(不显示/抛异常/功能不生效)。
本次在5处字符串长度判断点补充明确的SLOGE日志:
- NapiUtils::GetValue(std::string): 拆分原本合并的失败条件,
区分napi调用失败与长度超限,并输出实际长度和上限值
- NapiUtils::GetValue(AVCastPlayerState): 内联复制点同步加日志
- NapiUtils::GetOptionalString(DeviceInfo): ipAddress内联复制点
- TaiheUtils::GetString(string_view): Taihe层字符串汇聚点
修改后,无论上层现象如何,均可通过搜exceeds max limit直接定位到
字符串长度超限这一根因。
Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
|
2026-07-16 20:30:37 +08:00 |
|
openharmony_ci
|
1b114b4481
|
!3211 merge master into master
curl issuer name
Created-by: Liyimengg
Commit-by: LiYimeng
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)
### 二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
### 三、变更内容
* 3.1 关联PR列表
* 3.2 数据库和部署说明
1. 常规更新
2. 重启unicorn
3. 重启sidekiq
4. 迁移任务:是否有迁移任务,没有写 "无"
5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"
* 3.4 其他技术优化内容(做了什么,变更了什么)
- 重构了 xxxx 代码
- xxxx 算法优化
* 3.5 废弃通知(什么字段、方法弃用?)
* 3.6 后向不兼容变更(是否有无法向后兼容的变更?)
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx | 否 | 需要 | 不需要 |
| | | | |
接口测试:
性能测试:
并发测试:
其他:
See merge request: openharmony/multimedia_av_session!3211
|
2026-07-13 22:13:47 +08:00 |
|
LiYimeng
|
58a5ff87bb
|
curl issuer name
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
|
2026-07-13 21:06:13 +08:00 |
|