fix: 修复潜在数组越界的问题

This commit is contained in:
sjlleo
2022-05-27 17:19:58 +08:00
parent 84c48dae99
commit 9656dfe172

View File

@@ -130,7 +130,16 @@ func (r *reporter) InitialBaseData() Reporter {
func (r *reporter) Print() {
var beforeActiveTTL uint16 = 0
r.InitialBaseData()
for i := uint16(1); i < r.targetTTL; i++ {
// 尝试首个有效 TTL
for i := uint16(0); i < r.targetTTL; i++ {
if len(r.routeReport[i]) != 0 {
beforeActiveTTL = i
// 找到以后便不再循环
break
}
}
for i := beforeActiveTTL; i < r.targetTTL; i++ {
// 计算该TTL内的数据长度如果为0则代表没有有效数据
if len(r.routeReport[i]) == 0 {
// 跳过改跃点的数据整理
@@ -138,7 +147,7 @@ func (r *reporter) Print() {
}
nodeReport := r.routeReport[i][0]
if i == 1 {
if i == beforeActiveTTL {
fmt.Printf("AS%s %s「%s『%s", nodeReport.asn, nodeReport.isp, nodeReport.geo[0], nodeReport.geo[1])
} else {
nodeReportBefore := r.routeReport[beforeActiveTTL][0]