10 Star 0 Fork 17

src-openEuler / libnl3

 / 详情

libnl3自研用例存在内存泄漏

已完成
缺陷
创建于  
2024-04-15 19:21

优先级:

次要

详细描述:

【OS版本】:被测的版本信息

openEuler-22.03-LTSSPC_x86_64

针对libnl3自研用例开启ASAN的编译选项:-DENABLE_ASAN -fsanitize=address -fsanitize=undefined -fsanitize-recover=address,all -fno-omit-frame-pointer -Wno-unused -static-libasan -static-libubsan -lstdc++

编译完成后,执行用例

【预期输出】:系统在上述测试步骤操作后,按照系统设计应该输出的结果

用例成功执行

【测试代码】:发现问题的测试代码,或者关键片段,能指导问题复现

根据asan结果,判断test-link、test-add-delete-qdisc、test-add-delete-class三个用例存在内存泄漏

【初步定位结论】:已明确的相关定位信息或者相关的沟通交流信息

修改相应用例

原因分析:

【是否新引入rpm包,是否进行了安全编译选项扫描】

【定位分析】

libnl3 DT用例开启ASAN编译选项后,发现三个用例存在内存泄漏

test-link用例中调用cb=nl_cb_alloc后未调用nl_cb_put进行释放,导致内存泄漏;

test-add-delete-class和test-add-delete-qdisc用例中创建缓存时调用了nl_cache_mngt_provide函数对cache的引用计数加1,导致生成cache后引用计数为2,但是用例中调用nl_cache_put对cache进行释放时,会对cache的引用计数进行判断,只有为0时才会释放内存,如果大于1,则只是引用计数-1,所以导致内存泄漏,现调用nl_cache_mngt_unprovide进行释放;

评论 (2)

peulerosci 创建了缺陷

Hi peulerosci, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Networking, and any of the maintainers: @luzhihao , @seuzw , @kircher , @gebidelidaye , @Apricity , @robertxw , @孙苏皖

openeuler-ci-bot 添加了
 
sig/Networking
标签
peulerosci 修改了描述
sun_hai 通过src-openeuler/libnl3 Pull Request !52任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
1
https://gitee.com/src-openeuler/libnl3.git
git@gitee.com:src-openeuler/libnl3.git
src-openeuler
libnl3
libnl3

搜索帮助