从该网页截图中可以获取到以下关于漏洞的关键信息: 提交信息 - 提交者:Yurii Zubrytskyi - 提交时间:2023年5月1日 14:35:48 (UTC-0700) - 提交时间(相关联的构建与发布):2023年10月11日 22:47:40 - 提交ID: - 父提交ID: - 树ID: 提交描述 - 该提交撤销了之前的提交 ,即关于使用引用计数指针 的更改。 - 主要原因:内存损坏问题。ApkAssets对象在 中没有被释放,尽管 Java 要求它们只能在此处释放,但存在显式的 调用,导致部分 对象中仍在使用的对象被销毁。 - 更改说明: - 准备整个操作一次性的共享指针,而不是每次迭代重新锁定它们。 - 仍有大约5%的性能回归,当变更主题的 对象时,相比于原始的40%。 - 将日志消息更改为警告,以避免破坏应用程序。 - 原始提交评论: - 指出了内存损坏的主要原因是释放 ApkAssets 时 Java 期望它们只在 中被释放,但是存在显式的 ,这会破坏还在一些 AssetManager2 对象中使用的对象。 - 这次更改确保 AssetManagers 不会假设 ApkAssets 总是存在,而是尝试在需要访问时锁定它们在内存中。 - 添加了日志记录,以便在删除还存在弱引用的 assets 对象时进行记录。相关错误会在与bug有关的错误报告中生成,为调查提供帮助。 - 基准测试没有退步,设备运行良好,鉴于之前崩溃很少见,等待任何新的报告或缺少这些报告。 相关更改:修复2个错误 和 。 相关测试 - 单元测试、引导测试、基准测试 - 旧更改 ID: - (从 樱桃采摘) - (从 樱桃采摘) 相关变更信息:与 合并 更改ID: 更改文件:影响27个文件的更改。 文件更改列表