Repository navigation
drivers/ipc: harden pipe ioctl user pointer copy (#11958) - #11971
cms19859230182-lang wants to merge 1 commit into
Conversation
📌 Code Review Assignment🏷️ Tag: componentsReviewers: @Maihuanyi Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-11-02 15:37 CST)
📝 Review Instructions
|
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
FIONREAD/FIONWRITE wrote through a raw user pointer in kernel mode. Compute into a stack int and lwp_put_to_user under RT_USING_LWP; keep direct write otherwise. Also null-check pipe/fifo. Fixes RT-Thread#11958.
092ac19 to
02f4be4
Compare
|
摘要
修复
#11958:pipe_fops_ioctl对FIONREAD/FIONWRITE在内核态直接写用户裸指针的问题。改动
int,再经lwp_put_to_user拷出(ARCH_MM_MMU)pipe/pipe->fifo判空#include <lwp_user_mm.h>用ARCH_MM_MMU包住为何不在
sys_ioctl统一拦ioctl 语义因驱动而异(有的是标量
arg,有的是结构体指针),全局校验易误伤;驱动侧按 cmd 自守更合适。English
Harden
pipe_fops_ioctlforFIONREAD/FIONWRITE: compute into a stackint, thenlwp_put_to_userunderARCH_MM_MMU; keep direct write on non-MMU. Also null-checkpipe/fifo. Fixes #11958.