1 .一种GBase8s数据库越界定位方法,其特征在于,所述方法应用于GBase8s数据库,所
述方法包括:
从所述GBase8s数据库的segment内存空间中申请可分配内存空间,以及从所述可分配
内存空间中为指定的程序申请目标内存空间;
将所述可分配内存空间和/或所述目标内存空间作为待检查内存空间,对所述待检查
内存空间进行保护处理,以使所述待检查内存空间内的数据内存段处于可访问状态,以及
除数据内存段之外的其他内存段处于不可访问状态;
将所述GBase8s数据库的共享内存空间映射至所述待检查内存空间对应的shadow内存
空间,所述shadow内存空间通过标记表征所述待检查内存空间内各个内存地址的可访问状
态;
如果接收到针对所述待检查内存空间内的所述数据内存段的访问请求,通过ASAN内存
错误检查器,基于所述共享内存空间对所述访问请求是否存在越界问题进行检测,得到越
界检测结果。
2 .根据权利要求1所述的GBase8s数据库越界定位方法,其特征在于,所述GBase8s数据
库内配置有pool内存分配器;
从所述GBase8s数据库的segment内存空间中申请可分配内存空间,包括:
通过所述pool内存分配器接收指定的程序发送的内存申请请求,从所述GBase8s数据
库的segment内存空间中申请可分配内存空间;
对所述待检查内存空间进行保护处理,包括:
通过所述pool内存分配器执行如下操作:对所述可分配内存空间内的各个内存段进行
填充操作,使得所述可分配内存空间内的各个所述内存段处于不可访问状态;对所述可分
配内存空间内的数据内存段执行恢复操作,使得所述可分配内存空间内的所述数据内存段
处于可访问状态。
3 .根据权利要求2所述的GBase8s数据库越界定位方法,其特征在于,所述GBase8s数据
库内配置有heap内存分配器;
从所述可分配内存空间中为指定的程序申请目标内存空间,包括:
通过heap内存分配器从所述可分配内存空间中为指定的程序申请目标内存空间,所述
目标内存空间内的所述数据内存段的大小与所述内存申请请求携带的内存大小一致;
对所述待检查内存空间进行保护处理,包括:
通过所述heap内存分配器执行如下操作:对所述目标内存空间内的各个内存段进行填
充操作,使得所述目标内存空间内的各个所述内存段处于不可访问状态;根据所述内存申
请请求携带的内存大小确定实际待分配的内存大小,实际待分配的内存大小包括数据内存
段的大小和保护内存段的大小;按照所述数据内存段的大小和所述保护内存段的大小,从
所述目标内存空间中划分出所述数据内存段和所述保护内存段;对所述目标内存空间内的
所述数据内存段执行恢复操作,使得所述目标内存空间内的所述数据内存段处于可访问状
态。
4 .根据权利要求1所述的GBase8s数据库越界定位方法,其特征在于,将所述GBase8s数
据库的共享内存空间映射至所述待检查内存空间对应的shadow内存空间,包括:
从所述ASAN内存错误检查器的高内存空间中确定共享内存空间的起始内存地址,以及
权 利 要 求 书
1/3 页
2
评论