Geneve Protocol
- Dominant language
- Go
- Stars
- 6.8k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
Hi All,
Sending a packet using Geneve encapsulation is having an infinite loop in function DecodeFromBytes from file geneve.go line 67.
if you see line 94 is doing a subtraction between length and len
`length -= len` but if len is higher than length, the value is turning around, so now length is a big number and the loop is not going to finish.
You can try it, whit this code:
`package main
import (
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
)
func main() {
for i:=0; i < 400; i++{
b := []byte{118, 7, 29, 119, 134, 135, 222, 100, 191, 139, 198, 11, 8, 0, 69, 92, 4, 115, 0, 0, 64, 0, 192, 17, 154, 235, 95, 192, 208, 187, 140, 175, 94, 7, 0, 0, 23, 193, 4, 95, 0, 0, 2, 0, 8, 0, 204, 74, 193, 0, 47, 206, 233, 92, 67, 127, 146, 217, 69, 89, 4, 57, 162, 54, 0, 0, 192, 6, 158, 24, 39, 97, 238, 81, 160, 113, 255, 242, 3, 164, 239, 142, 28, 187, 142, 107, 119, 253, 155, 225, 80, 143, 160, 232, 208, 181, 44, 29, 35, 110, 22, 85, 37, 34, 109, 46, 8, 32, 120, 65, 26, 30, 113, 122, 17, 78, 38, 106, 18, 123, 116, 88, 91, 33, 124, 72, 68, 48, 74, 33, 28, 3, 26, 40, 108, 27, 124, 17, 110, 55, 1, 108, 6, 11, 3, 89, 98, 76, 43, 121, 84, 64, 96, 125, 78, 57, 41, 22, 70, 59, 12, 103, 60, 22, 32, 8, 79, 16, 52, 34, 62, 5, 84, 124, 37, 126, 79, 65, 5, 55, 104, 9, 38, 90, 66, 68, 97, 46, 75, 61, 46, 79, 63, 69, 93, 102, 23, 22, 15, 72, 10, 65, 123, 110, 67, 42, 121, 107, 69, 40, 96, 93, 62, 21, 15, 45, 3, 62, 62, 10, 97, 65, 74, 109, 43, 95, 71, 14, 94, 119, 4, 102, 119, 87, 51, 56, 110, 101, 0, 122, 90, 83, 111, 112, 48, 104, 19, 124, 17, 3, 82, 82, 125, 102, 21, 97, 49, 14, 23, 125, 59, 21, 74, 26, 122, 11, 115, 53, 97, 64, 56, 55, 104, 103, 77, 126, 5, 126, 69, 96, 2, 126, 111, 101, 52, 122, 35, 8, 119, 2, 3, 84, 44, 19, 6, 61, 50, 69, 84, 19, 5, 95, 13, 39, 72, 89, 117, 119, 127, 24, 26, 74, 9, 107, 99, 92, 91, 47, 0, 53, 0, 60, 122, 125, 75, 35, 81, 7, 16, 122, 84, 5, 94, 89, 113, 112, 94, 126, 103, 39, 78, 9, 37, 4, 18, 125, 102, 38, 22, 7, 120, 71, 21, 48, 114, 126, 0, 62, 18, 87, 85, 42, 12, 112, 123, 96, 86, 33, 80, 37, 17, 63, 84, 105, 99, 75, 58, 30, 80, 72, 43, 41, 101, 111, 113, 104, 16, 87, 43, 43, 108, 111, 75, 111, 54, 25, 76, 110, 93, 37, 21, 35, 2, 72, 32, 85, 98, 14, 67, 18, 17, 25, 111, 73, 126, 67, 4, 121, 1, 66, 7, 28, 120, 83, 69, 79, 123, 11, 38, 15, 121, 55, 31, 24, 13, 126, 26, 117, 85, 24, 32, 124, 37, 88, 36, 124, 33, 32, 112, 38, 50, 35, 101, 61, 72, 70, 42, 124, 25, 55, 77, 9, 99, 59, 30, 59, 11, 9, 77, 2, 53, 7, 109, 122, 78, 101, 116, 117, 0, 22, 40, 48, 64, 10, 15, 108, 114, 126, 12, 77, 12, 89, 98, 2, 56, 106, 10, 88, 44, 43, 36, 99, 70, 66, 110, 97, 77, 110, 32, 7, 7, 82, 21, 22, 83, 125, 46, 5, 127, 63, 67, 63, 67, 1, 1, 77, 122, 113, 24, 58, 39, 46, 91, 109, 3, 27, 15, 3, 112, 92, 84, 68, 10, 1, 86, 82, 91, 69, 42, 4, 8, 10, 10, 14, 79, 77, 110, 9, 95, 44, 125, 0, 30, 125, 32, 104, 77, 87, 74, 93, 78, 115, 0, 77, 109, 112, 121, 64, 125, 116, 46, 74, 28, 113, 24, 92, 92, 4, 108, 58, 28, 65, 16, 102, 51, 37, 34, 99, 50, 16, 101, 87, 117, 25, 114, 58, 60, 7, 96, 86, 127, 14, 66, 7, 38, 35, 4, 85, 115, 8, 41, 41, 51, 28, 121, 5, 119, 78, 103, 50, 65, 69, 115, 35, 103, 113, 59, 61, 55, 64, 100, 115, 83, 74, 53, 56, 83, 90, 111, 104, 8, 99, 112, 42, 36, 52, 123, 9, 83, 9, 67, 126, 106, 3, 10, 47, 18, 3, 34, 47, 85, 51, 49, 88, 24, 83, 112, 41, 20, 24, 27, 121, 90, 42, 17, 35, 101, 97, 107, 36, 97, 7, 15, 57, 37, 29, 12, 122, 37, 96, 110, 59, 86, 41, 14, 101, 4, 11, 120, 24, 13, 45, 124, 38, 125, 5, 118, 60, 105, 113, 76, 11, 124, 6, 111, 42, 23, 73, 99, 97, 99, 4, 23, 115, 109, 28, 8, 67, 41, 7, 87, 39, 58, 98, 41, 4, 92, 74, 58, 46, 110, 4, 46, 70, 86, 100, 58, 65, 17, 83, 101, 22, 4, 96, 83, 125, 123, 47, 69, 25, 103, 53, 98, 112, 56, 44, 46, 10, 77, 72, 78, 40, 69, 94, 116, 101, 44, 125, 60, 126, 33, 21, 68, 4, 36, 22, 33, 47, 117, 4, 118, 74, 13, 72, 8, 83, 46, 89, 57, 105, 56, 68, 124, 64, 107, 109, 30, 90, 11, 49, 77, 2, 62, 115, 19, 88, 87, 43, 24, 38, 11, 90, 90, 108, 2, 84, 1, 50, 43, 39, 79, 77, 80, 3, 88, 40, 101, 54, 1, 110, 79, 91, 63, 88, 11, 15, 8, 113, 77, 102, 4, 80, 26, 114, 104, 79, 46, 50, 69, 11, 35, 97, 7, 26, 58, 5, 101, 54, 78, 5, 85, 86, 10, 53, 127, 98, 122, 43, 90, 34, 33, 86, 61, 75, 30, 121, 82, 110, 2, 116, 56, 36, 109, 55, 77, 15, 127, 73, 47, 24, 27, 17, 83, 56, 57, 109, 13, 14, 52, 75, 26, 11, 75, 69, 29, 78, 36, 33, 11, 112, 122, 118, 94, 120, 33, 56, 0, 66, 107, 51, 126, 34, 124, 117, 125, 31, 109, 86, 15, 43, 71, 113, 45, 112, 118, 106, 59, 23, 114, 114, 90, 36, 69, 73, 71, 40, 21, 47, 66, 101, 82, 108, 13, 102, 79, 71, 8, 118, 67, 55, 95, 59, 124, 126, 95, 114, 55, 12, 57, 61, 32, 25, 94, 17, 95, 30, 3, 41, 58, 39, 103, 56, 2, 64, 60, 32, 37, 67, 22, 79, 92, 100, 104, 12, 82, 62, 18, 112, 13, 7, 70, 41, 62, 73, 119, 85, 33, 66, 1, 29, 57, 47, 47, 48, 20, 33, 118, 38, 63, 101, 13, 9, 94, 97, 102, 91, 54, 106, 5, 15, 114, 93, 84, 66, 51, 68, 33, 118, 32, 102, 106, 126, 118, 46, 102, 65, 94, 115, 18, 41, 105, 17, 39, 76, 85, 83, 18, 7, 10, 114, 4, 5, 84, 97, 5, 26, 49, 126, 51, 90, 100, 90, 103, 15, 44, 94, 69, 34, 37, 79, 70, 16, 106, 80, 23, 3, 55, 50, 5, 33, 89, 30, 15, 0, 64, 90, 98, 75, 25, 70, 62, 6, 5, 125, 35, 36, 88, 6, 98, 7, 14, 32, 71, 125, 93, 88, 23, 72, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
x:= gopacket.NewPacket(b, layers.LayerTypeEthernet, gopacket.NoCopy)
println(x.Dump())
}
}`
Contributor guide
Assessment
This issue has not been assessed yet.