virtio-console: fix uninitialized rx virtqueue pointer#11058
virtio-console: fix uninitialized rx virtqueue pointer#11058Aphlita wants to merge 0 commit intoRT-Thread:masterfrom
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: componentsReviewers: @Maihuanyi Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-12-14 17:33 CST)
📝 Review Instructions
|
|
请作者签署下CLA |
拉取/合并请求描述:(PR description)
[
本PR用于修复 virtio console 接收路径中可能存在的未初始化指针访问问题。原有代码在使用 rx virtqueue 前未对指针有效性进行显式校验,可能在异常初始化或特殊配置场景下触发静态分析告警甚至运行时风险。本次修改通过在使用前增加空指针检查,确保仅在 rx virtqueue 已正确初始化的情况下继续后续处理,从而提升代码健壮性与可维护性。
为什么提交这份PR (why to submit this PR)
修复 virtio console 接收流程中对 rx virtqueue 的潜在未初始化访问问题,消除静态分析工具报告的 uninitvar 风险,并防止在异常路径下发生空指针解引用。
你的解决方案是什么 (what is your solution)
在访问 rx virtqueue 之前显式检查指针有效性。当 rx virtqueue 为空时直接返回,避免对无效指针及其成员进行访问,其余逻辑保持不变,不影响既有功能行为。
请提供验证的bsp和config (provide the config and bsp)
BSP:
bsp/qemu-virt64
.config:
CONFIG_RT_USING_VIRTIO=y
CONFIG_RT_USING_SMP=y
action:
https://github.com///actions/workflows/manual_dist.yml
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up