#1131/#1133/#1134/#1135 中的插件加载和插件生命周期跟进
在审查第1131号,第1133号,第1134号和第1135号时出现了后续. 这其中没有一个是那些公关的倒退——它们是那些公关经过的先发问题,再加上两起一致性工作,只有在#1135登陆后才有可能实现. 每个项目都是独立的;它们都是在这里收集的,而不是作为六个问题收集的,因为它们都很小,而且都出自同一个审查证。
所有行号都与 " dev " ( " dev " )@83fbee38f相呼应,以下每项索赔均根据代码进行了核实。
++ 插件装入
+**
plugin manager load all prefixed() 报告它无法打开的目录的成功。 **lib/flipper application/plugins/plugin manager.c:129-132 ' ——Excutive' 被宣布为PluginManagerErrorNone' 和storage dir open()' 失败路径只是断裂'而不碰它,所以一个缺失或无法读取的文件夹返回“没有错误”。 与“:158-168”的读出失败路径相对应,该路径设置了“PluginManager Error LoaderError”。 效果:缺少apps data/subghz/plugins',subghz devices registry init()'得到PluginManagerErrorNone',只通过plugin count = 0'发出通知,它降级为警告——而两个Sub-GHz特性插件各为同一根源提出一个完整的错误屏幕。 同样的条件 两个非常不同的诚实程度。 (从一一三出.[]
subghz device registry init ()'不检查NULL的plugin manager get ep ()'。 **lib/subghz/devices/registry.c:44-45' 将结果直接存储到items [] 中,而plugin manager get ep ()' 返回lib descr->enter point'不受限制。 在app id 和 API 版本上匹配但带有无效切入点的.fal'将 NULL 置于数组中,而subghz device registry get by name ()' 然后在registry.c:68' 上去掉“subghz device registry->name”的参考,每个子-GHz起始处都有一个无效切入点,违法文件从未命名。 #1134在subghz feature plugin load ()'中精确地添加了这个护卫;它没有被传送到同一目录的另一消费者身上。
QQ 插件内存超过其图像
** 频率分析手插件
.rodata'到同步通知队列。 **应用程序/main/subghz/plugins/频率 analyzer/subghz 频率 analyzer plugin.c:9 ' 宣布序列-保存'为静态通知序列 ' -- -- 因此它生活在.fal' -- -- 和:67 ' 传到`通知-mesage()',该通知存储指针并返回。 序列中包含 " message delay 100 " ,所以在呼叫后仍然在行走. 从窗口内的分析器中返回,解析通知服务下的图像。 与# 1134 号卸载时必须取回的 " byte input " 标题相同: * 插件拥有的任何东西都可能超过未显示图, 包括交给自动同步服务的任何内容* 。 (从一一三一出.字节-输入 ' 和文字-输入'以参考方式存储其标题,而子菜单'则复制其标签。 **应用程序/服务/gui/modules/字节-输入.c:868-872'和文字-输入.c:650-653'都使用模型->标题'=文本;'和 . . . . . . .
内容来源: DarkFlippers/unleashed-firmware