Welcome To openEuler Community
Hey @qq_42345707 , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.
Contact Guide
If you have any questions, please contact the SIG: Kernel ,
and any of the maintainers: @hanjunguo, @oekernel, @sanglipeng, @zeng_zhaorong, @zhengzengkai ,
and any of the committers: @CTC-XiboWang, @Frank_Sae, @GongLei-, @LiuYongQiang0816, @SuperSix173, @Tankll2021, @TrueAI, @allen-shi, @baratta, @caixu-blue, @chenjiesong, @chenjunxin1992, @chenke2026, @chiqijun, @chriszjh, @duanqiangwen, @fangfeng123, @fanghaiqinghw, @gaojuxin09, @gouhao2022, @guzitao, @hanjunguo, @hanliyang, @hellotcc, @hewanhan, @hjx_gitff, @hongwu-wang, @htforge, @hu-chunzhi, @hunan4222, @jackknight, @jerry_lilijun, @junlong-zheng, @juntianlinux, @kailiu42, @kaitiandu, @kazero00, @kevinzhu1, @kile2009, @koishimind, @kongzizaixian, @kylin-mayukun, @leoliu-oc, @li-huisong, @linan888, @linyunsheng, @liulongfang, @lostway1, @luckky7, @lujialin2, @markyuan4ta21, @mingqian218472, @mufengyan, @qinirao, @robinorg, @rock_hw, @sanglipeng, @shu-shengming, @shuaijiakun, @sming56_admin, @stavewu, @stkid, @wangboe2022, @wenzhiwei11, @whoisxxx, @wkfxxx, @woqidaideshi, @wsoydl, @xingmz1, @xukuohai, @yeweihua999, @ygn-ndwd-official, @yonghu_4dc5, @young-sun, @yuehaibing_planb, @yuzenghui1, @zhang-changzhong, @zhangyi089, @zhujianwei001, @zichengqu, @zqiao216 .


以下的要求不是强制性的, 未按模板评论时对issue无任何影响
issue处理注意事项:
1. 当前issue受影响的分支提交pr时, 须在pr描述中填写当前issue编号进行关联, 否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容,未引入的分支不需要填写, 否则无法关闭当前issue;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复, 注: 内容的标题名称(影响性分析说明, 缺陷严重等级, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否))不能省略,省略后defect-manager将无法正常解析填写内容.
评论区可能使用到的指令说明:
| 指令 | 指令说明 | 使用权限 |
|---|---|---|
| /check-issue | 触发defect-manager校验 | 不限 |
| /reason xxx | /reason +挂起或取消条件 | 不限 |
影响性分析说明:
缺陷严重等级:(Critical/High/Moderate/Low)
缺陷根因说明:
受影响版本排查(受影响/不受影响):
- openEuler-20.03-LTS-SP4:
- openEuler-22.03-LTS-SP3:
- openEuler-22.03-LTS-SP4:
- openEuler-24.03-LTS:
- openEuler-24.03-LTS-SP1:
- openEuler-24.03-LTS-SP2:
abi变化(是/否):
- openEuler-20.03-LTS-SP4:
- openEuler-22.03-LTS-SP3:
- openEuler-22.03-LTS-SP4:
- openEuler-24.03-LTS:
- openEuler-24.03-LTS-SP1:
- openEuler-24.03-LTS-SP2:
缺陷issue处理具体操作请参考:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/defect-manager-manual.md
pr关联issue具体操作请参考:
https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


【缺陷描述】:请补充详细的缺陷问题现象描述
ca81109d4a8f192dc1cbad4a1ee25246363c2833
在 ext4_ext_shift_extents() 函数(通常用于文件空洞移动、塌陷等操作)的循环中,代码会调用 ext4_find_extent() 来获取这个 path。修复前:如果发现某个位置意外地出现了“空洞”(即 !extent),代码直接执行了 return -EFSCORRUPTED;而之前申请的 path 内存并没有通过 ext4_free_ext_path() 释放掉。
8cafcb881364af5ef3a8b9fed4db254054033d8a
如果 FAT 镜像损坏(比如掉电或磁盘故障),原本该是 3 的计数可能变成了 2。此时,如果你执行 rmdir 删除子目录,内核会无条件调用 drop_nlink(dir) 将计数减 1。后果: 计数从 2 降到了 1。在内核逻辑中,目录计数为 1 是极其异常的(通常意味着它不再是目录或是孤儿状态),这会触发内核的 WARN_ON 警告,甚至导致系统为了保护数据安全而挂起。补丁在 fs/fat/namei_msdos.c 和 fs/fat/namei_vfat.c 中都加入了逻辑判断:检查阈值:判断父目录的链接数 i_nlink 是否 >= 3。正常处理:如果满足条件,才调用 drop_nlink(dir) 进行减法。报错拦截:如果计数小于 3,说明文件系统已经损坏。此时不再减 1(防止触发 WARN_ON),而是调用 fat_fs_error 报告文件系统错误。
77449e453dfc006ad738dec55374c4cbc056fd39
修复 quotactl 和 freeze_super 之间的活锁问题
a8aec14230322ed8f1e8042b6d656c1631d41163
如果 device_add(dev) 失败了,代码会连续调用两次 put_device(dev)。在 Linux 内核中,一旦对象的引用计数降为 0,该对象占用的内存就会被立即释放。后果: 执行到 if (dev->parent) 时,dev 指向的内存已经不再合法。此时去读取 dev->parent,就像是在访问一个已经拆掉的房子的门牌号,会导致系统崩溃(KASAN 报 UAF 错误)。补丁引入了一个局部变量 parent。在 dev 的引用计数还有效时,先把父设备的指针存到栈(Stack)上。这样一来,最后一行 put_device(parent) 就不再依赖 dev 结构体里的成员了。即使 dev 因为引用计数归零而被释放,我们依然可以安全地释放之前临时持有的父设备引用。
94a8cea54cd935c54fa2fba70354757c0fc245e3
在 ext4 的块分配流程中,当系统准备写入数据时,会先通过 reserv_clstrs 预订一部分空间。当系统正在执行块分配,但突然遭遇 shutdown 注入时,在 ext4_mb_mark_diskspace_used() 函数中,即使元数据操作因为 shutdown 返回了错误(err),函数依然会执行 percpu_counter_sub 来扣减 s_dirtyclusters_counter。随后错误被向上抛给调用者。调用者 ext4_mb_new_blocks() 收到错误后,会跳转到错误处理路径(out 标签)。在旧代码中,由于分配失败导致 ar->len 为 0,它会再次尝试扣减 s_dirtyclusters_counter。同一个 reserv_clstrs 被减了两次。补丁删除了 ext4_mb_mark_diskspace_used() 内部扣减 s_dirtyclusters_counter 的代码,将所有的扣减逻辑上移到 ext4_mb_new_blocks() 的出口处。
feaf2a80e78f89ee8a3464126077ba8683b62791
旧代码在调用分裂函数时,强制带上了 EXT4_GET_BLOCKS_CONVERT 标志。这告诉内核即便分裂还没完全成功,只要尝试过清零,就把这块地标记为 Written(已写入)。若在分裂过程中,内核尝试插入新的 Extent 节点,但此时磁盘空间满了(-ENOSPC)。磁盘上的 Extent 被改成了 Written 状态。而内存里后半段仍被记为 Unwritten。导致状态撕裂,读到stale data。补丁通过取消强制转换,精细化标志位来规避问题。
一、缺陷信息
主线补丁回合
【缺陷所属的os版本】
5.10/6.6
【内核版本】
【缺陷所属软件及版本号】
5.10/6.6
【环境信息】
硬件信息
软件信息
网络信息
【问题复现步骤】
【实际结果】
【期望结果】
【其他相关附件信息】
【缺陷详情及分析指导参考链接】
二、缺陷分析结构反馈
影响性分析说明:
缺陷严重等级:(Critical/High/Moderate/Low)
缺陷根因说明:
受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4
openEuler-22.03-LTS-SP3
openEuler-22.03-LTS-SP4
openEuler-24.03-LTS
openEuler-24.03-LTS-SP1
openEuler-24.03-LTS-SP2
修复是否涉及abi变化(是/否):
openEuler-20.03-LTS-SP4
openEuler-22.03-LTS-SP3
openEuler-22.03-LTS-SP4
openEuler-24.03-LTS
openEuler-24.03-LTS-SP1
openEuler-24.03-LTS-SP2