[发明专利]一种热补丁装载方法、装置、电子设备及存储介质有效
申请号: | 202010752473.2 | 申请日: | 2020-07-30 |
公开(公告)号: | CN111949292B | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 江信辉 | 申请(专利权)人: | 锐捷网络股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/658;G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 350002 福建省福州市仓*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 补丁 装载 方法 装置 电子设备 存储 介质 | ||
本发明实施例提供一种热补丁装载方法、装置、电子设备及存储介质。所述方法包括:被补丁进程中的第一线程获取来自热补丁升级进程的热补丁升级通告;接收到热补丁升级通告后,所述第一线程加载所述热补丁升级通告对应的补丁程序;所述第一线程通告所述被补丁进程中除所述第一线程外的其它线程在线程主函数中暂停运行;所述第一线程检查所述被补丁进程内的所述其它线程均已进入线程主函数并暂停后,根据所述补丁程序执行补丁函数替换操作;所述第一线程通告所述被补丁进程内的所述其它线程恢复运行。本发明实施例在热补丁安装过程无需进行栈安全检查,在不牺牲性能、容量的情况下保障了补丁安装的可靠性。
技术领域
本发明实施例涉及通信技术领域,具体涉及一种热补丁装载方法、装置、电子设备及存储介质。
背景技术
热补丁能够在不需要重启当前运行系统的前提下修复软件漏洞,是一种快速、低成本修复产品软件版本缺陷的方式。热补丁(函数级)通常是通过将被替换函数(被补丁函数)的入口处指令修改为跳转到新函数(补丁函数)的指令实现。函数级热补丁的原理示意如图1所示:函数FuncA调用函数FuncB,被补丁函数为FuncB,补丁函数为FuncC,其实质是包含修订后的FuncB的内容,通过将FuncB的入口处指令修改为跳转到FuncC的指令,并使得FuncC函数执行完成后返回到调用函数FuncA,即可达到函数级热补丁替换的目的,不需要重启业务进程。
现有热补丁升级方式通常采用注入方式加载热补丁,在被补丁函数处理过程中,若将被补丁函数的入口指令修改了,恢复被补丁运行后,就可能导致程序运行异常,此外,补丁函数替换过程中,通常需要装载补丁文件、动态申请内存等,如果被补丁函数是动态内存申请函数,申请了锁,此时进行补丁函数替换时如果调用动态内存申请函数,就可能导致死锁问题,为了避免上述问题,热补丁升级进行指令替换前需要先检查保障替换过程中和替换后被补丁进程运行是安全的,即需要对其进行栈安全检查,图2为现有技术中热补丁升级栈安全检查示意图,如图2所示:被补丁进程(当前的调用栈是FuncA-FuncB-FuncC,正在执行FuncC)需要被暂停并对其进行栈安全检查,以避免出现上述问题。
栈中的函数调用关系的确定通常受到约束,现有技术通常采用牺牲性能、容量或使用不准确、较为准确的方法,例如可靠栈回溯法,编译优化通常使得栈帧的界限不明确,需要关闭一些编译优化功能,如帧指针优化、关闭红区等,会牺牲性能等;或结合带外数据解析,需要存储额外的信息,会牺牲容量,在嵌入式领域对产品的选型、成本等存在影响;如果存在第三方代码,如上游产商提供的工具链中的基础库,或购买的编译好的第三方程序,往往难以进行编译控制。
发明内容
针对现有技术中的缺陷,本发明实施例提供了一种热补丁装载方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种热补丁装载方法,包括:
被补丁进程中的第一线程获取来自热补丁升级进程的热补丁升级通告;
接收到热补丁升级通告后,所述第一线程加载所述热补丁升级通告对应的补丁程序;
所述第一线程通告所述被补丁进程中除所述第一线程外的其它线程在线程主函数中暂停运行;
所述第一线程检查所述被补丁进程内的所述其它线程均已进入线程主函数并暂停后,根据所述补丁程序执行补丁函数替换操作;
所述第一线程通告所述被补丁进程内的所述其它线程恢复运行。
如上述方法,可选地,所述被补丁进程中的第一线程获取来自热补丁升级进程的热补丁升级通告,包括:
所述被补丁进程中的第一线程监听来自所述补丁升级进程的热补丁升级通告;
或
所述被补丁进程中的第一线程按预设周期查询来自所述补丁升级进程的热补丁升级通告。
如上述方法,可选地,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于锐捷网络股份有限公司,未经锐捷网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010752473.2/2.html,转载请声明来源钻瓜专利网。