fix(test): resolve ASAN heap-buffer-overflow in textedit unit tests#467
Conversation
There was a problem hiding this comment.
Sorry @pengfeixx, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
1a24835 to
cbc8ccd
Compare
|
Note
详情{
"CMakeLists.txt": [
{
"line": " HOMEPAGE_URL \"https://github.com/linuxdeepin/deepin-editor\"",
"line_number": 8,
"rule": "S35",
"reason": "Url link | 9c6a12da6f"
}
]
} |
cbc8ccd to
75b5390
Compare
Add stubs for insertMultiTextEx, deleteMultiTextEx and slotCanUndoChanged to prevent unsafe Window pointer access via EditWrapper::window() when no real Window parent exists. 修复单元测试中因 EditWrapper 缺少 Window 父对象导致的堆越界崩溃, 通过 stub 隔离 undo 栈信号链中的 Window 访问路径。 同时修复源码中 slotCanUndoChanged/slotCanRedoChanged 的空指针 解引用风险,使用 dynamic_cast 替代直接调用,增加 m_wrapper 空检查。 修复 Tabbar::eventFilter 事件过滤范围过宽的问题。 修复 Qt6 API 兼容性(QMouseEvent/QHoverEvent 构造函数变更)。 修复 resizeEvent lambda 中的悬空指针风险(使用 QPointer 保护)。 修复 Window::checkBlockShutdown 空标签文本的越界访问。 Log: 修复单元测试ASAN堆越界崩溃及多处空指针/类型安全问题 Influence: 修复后单元测试不再因类型混淆和堆越界崩溃,提升测试稳定性;源码修复消除了 slotCanUndoChanged 等路径中的空指针解引用和悬空指针风险。
75b5390 to
a7bb70e
Compare
|
Note
详情{
"CMakeLists.txt": [
{
"line": " HOMEPAGE_URL \"https://github.com/linuxdeepin/deepin-editor\"",
"line_number": 8,
"rule": "S35",
"reason": "Url link | 9c6a12da6f"
}
]
} |
deepin pr auto review你好!我是CodeGeeX。我已仔细审查了你提供的Git Diff,本次提交主要涉及Qt6兼容性修复、空指针与生命周期安全增强、逻辑优化以及单元测试更新。 以下是我对本次代码变更在语法逻辑、代码质量、代码性能和代码安全四个方面的详细审查意见及改进建议: 一、 语法与逻辑1.
2.
3.
4.
二、 代码质量1.
2.
3. 版权声明年份格式
三、 代码性能1.
2.
四、 代码安全1.
2.
3.
总结本次 Diff 的核心方向非常正确,主要解决了 Qt6 兼容性和多处生命周期/空指针的安全隐患。请务必优先修复 |
|
Note
详情{
"CMakeLists.txt": [
{
"line": " HOMEPAGE_URL \"https://github.com/linuxdeepin/deepin-editor\"",
"line_number": 8,
"rule": "S35",
"reason": "Url link | 9c6a12da6f"
}
]
} |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: lzwind, pengfeixx The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/merge |
Add stubs for insertMultiTextEx, deleteMultiTextEx and slotCanUndoChanged to prevent unsafe Window pointer access via EditWrapper::window() when no real Window parent exists.
修复单元测试中因 EditWrapper 缺少 Window 父对象导致的堆越界崩溃,
通过 stub 隔离 undo 栈信号链中的 Window 访问路径。
同时修复源码中 slotCanUndoChanged/slotCanRedoChanged 的空指针 解引用风险,使用 dynamic_cast 替代直接调用,增加 m_wrapper 空检查。
修复 Tabbar::eventFilter 事件过滤范围过宽的问题。
修复 Qt6 API 兼容性(QMouseEvent/QHoverEvent 构造函数变更)。
修复 resizeEvent lambda 中的悬空指针风险(使用 QPointer 保护)。
修复 Window::checkBlockShutdown 空标签文本的越界访问。
Log: 修复单元测试ASAN堆越界崩溃及多处空指针/类型安全问题
Influence: 修复后单元测试不再因类型混淆和堆越界崩溃,提升测试稳定性;源码修复消除了 slotCanUndoChanged 等路径中的空指针解引用和悬空指针风险。