登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
仓库状态说明
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
12
Star
1
Fork
58
src-openEuler
/
glib2
关闭
代码
Issues
3
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
升级2403sp1版本后,调用g_sliet_remove移除单链表的最后一个节点data,remove后data->next指针从null变成野指针
已完成
#ICO7XF
缺陷
xsl
创建于
2025-07-23 12:01
**【缺陷描述】:请补充详细的缺陷问题现象描述** 问题:调用g_sliet_remove移除单链表的最后一个节点data,remove后data->next指针从null变成野指针 2203sp3版本的data->next本来是null,g_sliet_remove后还是null /tmp # ./glib2free Initial list: 1 2 3 Removing node with data 1 xsl----- data is 0xaaaaead63d00, data->next is 0xaaaaead63d10xsl----- data is 0xaaaaead63d00, data->next is (nil)Removing node with data 2 xsl----- data is 0xaaaaead63d10, data->next is 0xaaaaead63d20xsl----- data is 0xaaaaead63d10, data->next is (nil)Removing node with data 3 xsl----- data is 0xaaaaead63d20, data->next is (nil)xsl----- data is 0xaaaaead63d20, data->next is (nil)Final list: 2403sp1版本的data->next本来是null,g_sliet_remove后变成野指针了 /tmp # ./glib2free Initial list: 1 2 3 Removing node with data 1 xsl----- data is 0xaaaab61d9470, data->next is 0xaaaab61d94b0xsl----- data is 0xaaaab61d9470, data->next is 0xd43ce57f278f25c5Removing node with data 2 xsl----- data is 0xaaaab61d94b0, data->next is 0xaaaab61d94f0xsl----- data is 0xaaaab61d94b0, data->next is 0xd43ce57f278f25c5Removing node with data 3 xsl----- data is 0xaaaab61d94f0, data->next is (nil)xsl----- data is 0xaaaab61d94f0, data->next is 0xd43ce57f278f25c5Final list: **一、缺陷信息** **【缺陷所属的os版本】(如openEuler-22.03-LTS,参考命令"cat /etc/os-release"结果)** **【内核版本】(如kernel-5.10.0-60.138.0.165,参考命令"uname -r"结果)** **【缺陷所属软件及版本号】(如kernel-5.10.0-60.138.0.165,参考命令"rpm -q 包名"结果)** **【环境信息】** 硬件信息 aarch64 GNU/Linux - 提供跟硬件相关的信息,如架构、cpu和内存规格等 - 虚拟机场景,额外补充宿主机os版本类型 软件信息 2403sp1版本 网络信息 - 如果有特殊组网,请提供网络拓扑信息以及网络数据走向 **【问题复现步骤】:请描述具体的操作步骤** 复现测试代码: #include <stdio.h> #include <glib.h> typedef struct { int data; } NodeData; int main() { // 创建链表 GSList *list = NULL; // 创建三个节点 NodeData *node1 = g_new(NodeData, 1); node1->data = 1; list = g_slist_append(list, node1); NodeData *node2 = g_new(NodeData, 1); node2->data = 2; list = g_slist_append(list, node2); NodeData *node3 = g_new(NodeData, 1); node3->data = 3; list = g_slist_append(list, node3); // 打印初始链表 GSList *iter = list; printf("Initial list: "); while (iter != NULL) { NodeData *data = (NodeData *)iter->data; printf("%d ", data->data); iter = iter->next; } printf("\n"); // 逐个删除节点 for (int i = 0; i < 3; i++) { GSList *temp = list; NodeData *data = (NodeData *)temp->data; printf("Removing node with data %d\n", data->data); printf("xsl----- data is %p, data->next is %p", temp, temp->next); list = g_slist_remove(list, data); printf("xsl----- data is %p, data->next is %p", temp, temp->next); g_free(data); // 释放节点数据 } // 释放剩余的链表节点(此时应该是空的) g_slist_free(list); return 0; } **【实际结果】**,请描述出问题的结果和影响 调用g_sliet_remove释放单链表的最后一个data节点,data->next变成野指针了 **【期望结果】**,请描述出期望的结果和影响 调用g_sliet_remove释放单链表的最后一个data节点,data->next是null **【其他相关附件信息】** 比如系统message日志/组件日志、dump信息、图片等 **【缺陷详情及分析指导参考链接】** **二、缺陷分析结构反馈** 影响性分析说明: 缺陷严重等级:(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
**【缺陷描述】:请补充详细的缺陷问题现象描述** 问题:调用g_sliet_remove移除单链表的最后一个节点data,remove后data->next指针从null变成野指针 2203sp3版本的data->next本来是null,g_sliet_remove后还是null /tmp # ./glib2free Initial list: 1 2 3 Removing node with data 1 xsl----- data is 0xaaaaead63d00, data->next is 0xaaaaead63d10xsl----- data is 0xaaaaead63d00, data->next is (nil)Removing node with data 2 xsl----- data is 0xaaaaead63d10, data->next is 0xaaaaead63d20xsl----- data is 0xaaaaead63d10, data->next is (nil)Removing node with data 3 xsl----- data is 0xaaaaead63d20, data->next is (nil)xsl----- data is 0xaaaaead63d20, data->next is (nil)Final list: 2403sp1版本的data->next本来是null,g_sliet_remove后变成野指针了 /tmp # ./glib2free Initial list: 1 2 3 Removing node with data 1 xsl----- data is 0xaaaab61d9470, data->next is 0xaaaab61d94b0xsl----- data is 0xaaaab61d9470, data->next is 0xd43ce57f278f25c5Removing node with data 2 xsl----- data is 0xaaaab61d94b0, data->next is 0xaaaab61d94f0xsl----- data is 0xaaaab61d94b0, data->next is 0xd43ce57f278f25c5Removing node with data 3 xsl----- data is 0xaaaab61d94f0, data->next is (nil)xsl----- data is 0xaaaab61d94f0, data->next is 0xd43ce57f278f25c5Final list: **一、缺陷信息** **【缺陷所属的os版本】(如openEuler-22.03-LTS,参考命令"cat /etc/os-release"结果)** **【内核版本】(如kernel-5.10.0-60.138.0.165,参考命令"uname -r"结果)** **【缺陷所属软件及版本号】(如kernel-5.10.0-60.138.0.165,参考命令"rpm -q 包名"结果)** **【环境信息】** 硬件信息 aarch64 GNU/Linux - 提供跟硬件相关的信息,如架构、cpu和内存规格等 - 虚拟机场景,额外补充宿主机os版本类型 软件信息 2403sp1版本 网络信息 - 如果有特殊组网,请提供网络拓扑信息以及网络数据走向 **【问题复现步骤】:请描述具体的操作步骤** 复现测试代码: #include <stdio.h> #include <glib.h> typedef struct { int data; } NodeData; int main() { // 创建链表 GSList *list = NULL; // 创建三个节点 NodeData *node1 = g_new(NodeData, 1); node1->data = 1; list = g_slist_append(list, node1); NodeData *node2 = g_new(NodeData, 1); node2->data = 2; list = g_slist_append(list, node2); NodeData *node3 = g_new(NodeData, 1); node3->data = 3; list = g_slist_append(list, node3); // 打印初始链表 GSList *iter = list; printf("Initial list: "); while (iter != NULL) { NodeData *data = (NodeData *)iter->data; printf("%d ", data->data); iter = iter->next; } printf("\n"); // 逐个删除节点 for (int i = 0; i < 3; i++) { GSList *temp = list; NodeData *data = (NodeData *)temp->data; printf("Removing node with data %d\n", data->data); printf("xsl----- data is %p, data->next is %p", temp, temp->next); list = g_slist_remove(list, data); printf("xsl----- data is %p, data->next is %p", temp, temp->next); g_free(data); // 释放节点数据 } // 释放剩余的链表节点(此时应该是空的) g_slist_free(list); return 0; } **【实际结果】**,请描述出问题的结果和影响 调用g_sliet_remove释放单链表的最后一个data节点,data->next变成野指针了 **【期望结果】**,请描述出期望的结果和影响 调用g_sliet_remove释放单链表的最后一个data节点,data->next是null **【其他相关附件信息】** 比如系统message日志/组件日志、dump信息、图片等 **【缺陷详情及分析指导参考链接】** **二、缺陷分析结构反馈** 影响性分析说明: 缺陷严重等级:(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
评论 (
5
)
登录
后才可以发表评论
状态
已完成
待办的
已挂起
修复中
已确认
已完成
已验收
已取消
负责人
未设置
sun_hai
sun_hai_10
负责人
协作者
+负责人
+协作者
标签
sig/Base-service
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(4)
1
https://gitee.com/src-openeuler/glib2.git
git@gitee.com:src-openeuler/glib2.git
src-openeuler
glib2
glib2
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册