iputil: fix infinite loop in ipv6FindUpperProtocol from uint8 extension-header length overflow (#1784)

This commit is contained in:
Nate Brown
2026-07-07 13:28:52 -05:00
committed by GitHub
parent 0a953915bb
commit abfeb502a8
+2 -2
View File
@@ -344,7 +344,7 @@ func ipv6FindUpperProtocol(packet []byte) (nextHeader uint8, offset int, isFragm
return nextHeader, offset, isFragment
}
nextHeader = packet[offset]
offset += int(packet[offset+1]+1) << 3
offset += (int(packet[offset+1]) + 1) << 3
case 44: // Fragment
if len(packet) < offset+8 {
@@ -361,7 +361,7 @@ func ipv6FindUpperProtocol(packet []byte) (nextHeader uint8, offset int, isFragm
return nextHeader, offset, isFragment
}
nextHeader = packet[offset]
offset += int(packet[offset+1]+2) << 2
offset += (int(packet[offset+1]) + 2) << 2
default:
return nextHeader, offset, isFragment