[Android稳定性] 第027篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1 5月前查看 评论
[Android稳定性] 第027篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1

**摘要:** 在正常测试过程中,手机电池温度达到35度时,手机进入dump状态。问题分析显示,在`pd_policy_manager`模块的`usbpd_pm_workfunc`函数中出现了内核崩溃。进一步分析发现,`usbpd_pm_sm`函数在处理状态转换时,由于状态数组`pm_str`未包含`PD_PM_STATE_FC2_HOLD`,导致数组越界访问,引发崩溃。解决方案建议在`pm_str`数组中添加`PD_PM_STATE_FC2_HOLD`状态。

[Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic 8月前查看 评论
[Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic

**摘要总结:** 服务器打包的daily版本在刷机后出现900E口死机问题。通过分析dmesg日志,发现程序在`fts_set_cur_value`函数处异常终止。进一步使用trace32工具恢复现场,确认是由于`touch_mode`数组越界导致的内存访问错误。该数组最大值被定义为15,但实际使用时传入了100,导致严重异常。

[Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic 8月前查看 评论
[Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic

**问题现象**: 部分机器插着 USB 后出现死机。 **问题分析**: 通过 `dmesg` 和 `trace32` 分析,发现死机原因是 `power_operation_mode_show` 函数中 `typec_port` 结构体的 `pwr_opmode` 成员值错误(为负数),导致数组越界。 **解决方案**: 更新 charger 模块,修复对 `pwr_opmode` 的误判,确保其值为正数,避免数组越界。 **总结**: 本次问题是由 `typec_port` 结构体的 `pwr_opmode` 成员值错误导致,通过分析定位问题,并更新 charger 模块修复了问题。