Skip to content

fix(windows): harden VDD control transport#817

Merged
qiin2333 merged 2 commits into
masterfrom
agent/harden-vdd-control-boundary
Jul 21, 2026
Merged

fix(windows): harden VDD control transport#817
qiin2333 merged 2 commits into
masterfrom
agent/harden-vdd-control-boundary

Conversation

@qiin2333

Copy link
Copy Markdown
Collaborator

改了啥呀

  • 两处旧版 VDD 命名管道连接都固定为 Identification 模拟级别,避免服务端拿客户端令牌做坏事
  • 明确帧通道 ABI 的 TargetProcessId 必须等于发起 IOCTL 的进程
  • 控制面板子模块更新到 sunshine-control-panel#58,接入收窄后的 UAC/IOCTL 路径

为啥要改

Foundation 同时兼容新版 IOCTL 和旧版命名管道。这里补齐客户端侧的管道防冒充约束,并让 ABI 文档、控制面板和驱动实现保持一致;权限边界就不会被杂鱼兼容路径悄悄绕开啦。

验证

  • vdd_utils.cpp 独立对象编译通过(MSYS2 UCRT64)
  • 控制面板 npm run build:renderer 通过
  • 控制面板 cargo check --locked 通过

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e51e34ee-6f71-43eb-805b-6a9a8a97e211

📥 Commits

Reviewing files that changed from the base of the PR and between fff4bde and a3d7ea3.

📒 Files selected for processing (3)
  • src/display_device/vdd_control_ioctl.h
  • src/display_device/vdd_utils.cpp
  • src_assets/common/sunshine-control-panel
📜 Recent review details
🧰 Additional context used
📓 Path-based instructions (1)
src/**/*.{cpp,c,h}

⚙️ CodeRabbit configuration file

src/**/*.{cpp,c,h}: Sunshine 核心 C++ 源码,自托管游戏串流服务器。审查要点:内存安全、 线程安全、RAII 资源管理、安全漏洞。注意预处理宏控制的平台相关代码。

Files:

  • src/display_device/vdd_control_ioctl.h
  • src/display_device/vdd_utils.cpp
🔇 Additional comments (3)
src/display_device/vdd_utils.cpp (1)

156-157: LGTM!

Also applies to: 745-746

src/display_device/vdd_control_ioctl.h (1)

31-32: LGTM!

src_assets/common/sunshine-control-panel (1)

1-1: LGTM!


Summary by CodeRabbit

  • 安全性

    • 改进显示设备连接及关闭阶段的管道通信安全标识处理,提升通信一致性与安全性。
  • 文档

    • 澄清打开帧通道时目标进程标识的使用要求。

Walkthrough

更新 VDD legacy named-pipe 连接的安全标志,补充 IOCTL 句柄归属说明,并更新 sunshine-control-panel 子模块提交。

Changes

VDD 管道与 IOCTL 更新

Layer / File(s) Summary
统一 legacy named-pipe 安全标志
src/display_device/vdd_utils.cpp
两个 CreateFileW 调用使用 SECURITY_SQOS_PRESENT | SECURITY_IDENTIFICATION
澄清 IOCTL 句柄有效范围
src/display_device/vdd_control_ioctl.h
文档明确返回句柄仅在 TargetProcessId 中有效,且该进程必须发起 IOCTL。

控制面板子模块更新

Layer / File(s) Summary
更新控制面板子模块提交
src_assets/common/sunshine-control-panel
子模块提交哈希更新至新版本。

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: yundi339

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed 标题准确概括了本次对 Windows VDD 控制传输加固的主要改动。
Description check ✅ Passed 描述与实际变更一致,涵盖了命名管道加固、ABI 约束和控制面板子模块更新。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/harden-vdd-control-boundary

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qiin2333
qiin2333 marked this pull request as ready for review July 21, 2026 03:15
@qiin2333
qiin2333 merged commit 0a871f5 into master Jul 21, 2026
3 checks passed
@qiin2333
qiin2333 deleted the agent/harden-vdd-control-boundary branch July 21, 2026 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant