Skip to content

feat: add linglong-specific path to CDI search path - #1791

Open
reddevillg wants to merge 1 commit into
OpenAtom-Linyaps:masterfrom
reddevillg:cdi_path
Open

feat: add linglong-specific path to CDI search path#1791
reddevillg wants to merge 1 commit into
OpenAtom-Linyaps:masterfrom
reddevillg:cdi_path

Conversation

@reddevillg

Copy link
Copy Markdown
Collaborator

No description provided.

Signed-off-by: reddevillg <reddevillg@gmail.com>
@deepin-ci-robot

Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: reddevillg

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@deepin-ci-robot

Copy link
Copy Markdown
Collaborator

deepin pr auto review

★ 总体评分:85分

■ 【总体评价】

代码正确实现了CDI规范文件搜索路径的优先级调整,但缺少必要的注释说明
逻辑正确但因缺少注释解释优先级设计意图扣15分

■ 【详细分析】

  • 1.语法逻辑(完全正确)✓
    C++11 初始化列表语法使用正确,在 struct RunOptions 中对 std::vector<std::string> 成员 cdiSpecDir 进行原地初始化,将 /etc/linglong/cdi 添加至列表首位,完全符合 C++ 标准。
    潜在问题:无
    建议:无
  • 2.代码质量(一般)✕
    cli.h 文件的 RunOptions 结构体中新增了自定义路径,但未添加任何注释说明为何将 /etc/linglong/cdi 置于系统默认路径 /etc/cdi 之前。对于涉及系统级设备注入路径优先级的修改,缺少设计意图说明会降低代码可维护性。
    潜在问题:后续维护者可能不清楚该路径的最高优先级是否为刻意设计,存在被误调整顺序的风险。
    建议:在变量定义上方添加注释,明确说明 UOS/linglong 自定义路径需优先于系统标准路径加载的原因。
  • 3.代码性能(无性能问题)✓
    此处为编译期确定的静态初始化列表,仅包含三个短字符串常量,不涉及动态内存分配的复杂逻辑或运行时计算,对运行时性能无任何负面影响。
    建议:无
  • 4.代码安全(存在0个安全漏洞)✓
    漏洞对比统计:新增漏洞 0 个,减少漏洞 0 个,持平 0 个
    总体风险描述:当前 Diff 仅包含字符串常量定义,无直接代码攻击面。真正的潜在攻击面在于下游消费 cdiSpecDir 变量的文件遍历逻辑,若 /etc/linglong/cdi 目录权限配置不当,可能面临非特权用户通过放置恶意 CDI YAML/JSON 规范文件进行容器设备注入逃逸的风险,但此风险不属于本 Diff 引入的代码漏洞。

  • 建议:确保系统打包或安装脚本中正确创建了 /etc/linglong/cdi 目录,并将其权限严格限制为仅 root 用户可写,防止配置注入;同时在下游遍历加载 CDI 文件时,需校验文件属主及权限。

■ 【改进建议代码示例】

    std::optional<bool> enableAtSpiSocketMount;
    bool privileged{ false };
    std::vector<std::string> capsAdd;
    // UOS/linglong 自定义 CDI 规范路径,置于首位确保自定义设备注入优先于系统默认配置加载
    std::vector<std::string> cdiSpecDir = { "/etc/linglong/cdi", "/etc/cdi", "/var/run/cdi" };
    std::vector<std::string> cdiDevices;
    std::vector<api::types::v1::DeviceOption> deviceOptions;

@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
libs/linglong/src/linglong/cli/cli.h 8.33% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@reddevillg
reddevillg requested a review from dengbo11 August 10, 2026 05:10
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.

2 participants