From 80bd1289acf006bb9e4bdf858f0fbe1eabd0a4c7 Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Fri, 4 Mar 2016 12:35:23 +0900 Subject: packet fix FlowSpecComponentItem's Serialize - don't overwrite length if it was initialized because the length can't calculated from the value. For exmaple, assuming using one byte for port number < 255 is probably wrong. - don't touch FlowSpecComponentItem's Op value. Mutating is a bad idea. Signed-off-by: FUJITA Tomonori --- packet/bgp.go | 52 +++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) (limited to 'packet/bgp.go') diff --git a/packet/bgp.go b/packet/bgp.go index c71d1489..e136c807 100644 --- a/packet/bgp.go +++ b/packet/bgp.go @@ -2519,32 +2519,38 @@ func (v *FlowSpecComponentItem) Serialize() ([]byte, error) { } if v.Op < 0 || v.Op > math.MaxUint8 { return nil, fmt.Errorf("invalid op size: %d", v.Op) - } - for i := 0; i < 3; i++ { - if v.Value < (1 << ((1 << uint(i)) * 8)) { - buf := make([]byte, 1+(1<