fix #4286,fifx memory leak when sal_socket failed#10506
fix #4286,fifx memory leak when sal_socket failed#10506Rbb666 merged 1 commit intoRT-Thread:masterfrom
Conversation
📌 Code Review Assignment🏷️ Tag: componentsPath: Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-07-14 08:34 UTC)
📝 Review Instructions
|
|
@BernardXiong 请帮忙评审 谢谢 |
|
很不错,这种隐藏bug是比较难发现的。 @Rbb666 @kurisaW @Maihuanyi 大佬们可以评估一下
|
|
你好,请签一下CLA @jianbaoshan |
|
已经签了 |
|
LGTM |
赞同,这样修改更合理 |


拉取/合并请求描述:(PR description)
问题描述
发现个内存泄漏的地方,解决特殊情况下出现的内存泄漏问题,将申请的内存直接进行初始化,而不是在其他条件下执行成功才初始化,执行失败不进行初始化直接释放内存,这段内存只有正确初始化之后才会被释放掉,否则不会被释放掉
修改方案
将申请的内存直接进行初始化,而不是在其他条件下执行成功才初始化,执行失败不进行初始化直接释放内存
测试验证
BSP:rt-thread\bsp\hc32\ev_hc32f4a0_lqfp176
.config:rt-thread默认配置UDP数量为4
action:开启超过4个的udp连接,此时sal_socket会执行失败,失败原因是UDP数量不够,失败的时候不会执行dfs_vnode_init初始化函数对申请的vnode内存进行初始化,直接就释放该内存,但是释放该内存的依据是ref_count--为0,未进行初始化的时候,ret_count是个随机值,进行自减极大概率不会变成0,导致这块内存实际上并没有被释放掉
当前拉取/合并请求的状态 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