675 Commits

Author SHA1 Message Date
xuhy 4b57fed5d6 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-20 20:48:09 +08:00
xuhy 78b7fdae59 lanqu2
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-20 16:14:10 +08:00
LiYimeng b6b549003f issue2654
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
2026-08-19 16:49:04 +08:00
weixin_43563670 afb54c23af update: 更新文件 avsession_manager_impl.cpp
Signed-off-by: weixin_43563670 <diyujia1@huawei.com>
2026-08-17 19:26:31 +08:00
weixin_43563670 fd059f59b2 增加权限校验
Signed-off-by: weixin_43563670 <diyujia1@huawei.com>
2026-08-17 17:52:44 +08:00
xuhy 078c423e38 xiufu ut
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-14 19:01:34 +08:00
xuhy a124823293 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-12 18:50:24 +08:00
xuhy cf8d466872 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-12 18:49:56 +08:00
xuhy 6b8f280993 add ut
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-11 21:02:27 +08:00
xuhy e5d58d60a2 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-11 16:34:57 +08:00
xuhy 513143acd9 revised ut
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-11 14:09:24 +08:00
xuhy d762f61611 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-10 16:43:14 +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
红袍小恶魔 a9e1679fe2 补充ut
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-08-07 10:26:23 +08:00
openharmony_ci 10a5610e17 !3333 merge master into master
issue 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!3333
2026-08-06 20:17:46 +08:00
LiYimeng 7c4a71d43a issue warning
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
2026-08-06 15:11:42 +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
红袍小恶魔 1b749b2bb8 修复SetLoopMode下界校验非兼容变更导致UT失败
PR3311将AVCastControlCommand::SetLoopMode下界由loopMode<0改为
loopMode<LOOP_MODE_UNDEFINED(-1),使-1从拒绝变为接受,属于非兼容变更,
导致老用例AVCastControllerTest.SendControlCommand001失败。

恢复原有下界语义(拒绝含-1在内的负数),保留新增的上界校验(安全加固点),
合法区间恢复为[LOOP_MODE_SEQUENCE, LOOP_MODE_CUSTOM];下界改用
LOOP_MODE_SEQUENCE枚举表达,与上界LOOP_MODE_CUSTOM对称,避免再次误抄
sibling AVControlCommand::SetLoopMode(其接受-1为自身既有语义,不受本变更影响)。

同步修正40276047中按错误行为固化的用例:
- SetLoopModeInvalidBelowRange001补充-1拒绝断言并修正描述
- SetLoopModeValidBoundary003下界期望由LOOP_MODE_UNDEFINED改为LOOP_MODE_SEQUENCE

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-08-01 17:19:44 +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
红袍小恶魔 935c820828 修改ut
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-30 21:28:47 +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
红袍小恶魔 6208a3bb39 补充UT
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-30 19:42:45 +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 b71c0caeb8 !3298 merge 0727zzz into master
add pause pause enum for media center control type

Created-by: zhang-minmin-jason
Commit-by: 张敏敏
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!3298
2026-07-27 20:49:23 +08:00
xuhy2 a0d47883d4 update: 更新文件 BUILD.gn
Signed-off-by: xuhy2 <xuhuanyu2@huawei.com>
2026-07-27 19:45:22 +08:00
张敏敏 0f043a05be add pause pause enum for media center control type
Signed-off-by: 张敏敏 <zhangminmin9@huawei.com>
2026-07-27 19:11:35 +08:00
openharmony_ci 3866997362 !3273 merge 0722warnings into master
dd warnings for service 0722

Created-by: zhang-minmin-jason
Commit-by: 张敏敏
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!3273
2026-07-27 11:41:25 +08:00
xuhy 08836bf3dd zhenggai
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-07-26 19:15:25 +08:00
红袍小恶魔 c75d0bb0a3 修复AVCallMetaDataMarshalling002用例预期与实际行为不符
AVCallMetaData::Marshalling对空字段对象写入空字符串,即使Parcel容量为0也能成功返回true。原用例预期false并设置SetMaxCapacity(0)与实际行为不符导致用例失败。本次去掉SetMaxCapacity(0)并将预期改为true,使测试与实际行为一致。

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-25 14:54:52 +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
张敏敏 49aa038012 warnings fix 0723
Co-Authored-By: Agent
Signed-off-by: 张敏敏 <zhangminmin9@huawei.com>
2026-07-24 16:35:32 +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 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
红袍小恶魔 d8b30de4e9 添加UT
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-23 18:53:16 +08:00
openharmony_ci 0dc60f18e7 !3251 merge quanxian into master
permission 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!3251
2026-07-23 18:17:35 +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
LiYimeng 70295cd045 nullptr
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
2026-07-22 11:39:31 +08:00
LiYimeng 07833de5a2 permission warning
Signed-off-by: LiYimeng <liyimeng2@huawei.com>
Co-Authored-By: Agent
2026-07-22 11:25:42 +08:00
zhang-minmin-jason efba1e8116 reduce log 0708
Signed-off-by: zhang-minmin-jason <zhangminmin9@h-partners.com>
2026-07-08 17:32:56 +08:00
xuhy 70f62caf14 事件通知规范整改
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-06-28 15:30:14 +08:00
openharmony_ci 1bce8d11df !3164 merge master into master
add pac protect

Created-by: xuhy2
Commit-by: 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!3164
2026-06-27 17:59:05 +08:00
openharmony_ci 6ded6756cd !3178 merge master into master
蓝黄差异

Created-by: xuhy2
Commit-by: 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!3178
2026-06-27 16:59:26 +08:00
xuhy 5da341ba33 lanhuangchayi
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-06-27 16:00:25 +08:00
openharmony_ci da31831e2c !3137 merge 0615log into master
reduce log 0615

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!3137
2026-06-26 18:18:40 +08:00
xuhy 082068c074 add pac protect
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-06-25 20:46:31 +08:00