Skip to content

Commit 14effdf

Browse files
author
xuxiaochuang
committed
fix: some pad's length in UnmarshalBinary is 0
Signed-off-by: xuxiaochuang <[email protected]>
1 parent d967b14 commit 14effdf

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

openflow13/multipart.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -668,9 +668,9 @@ func (s *TableStats) UnmarshalBinary(data []byte) error {
668668
s.TableId = data[0]
669669
n += 1
670670
copy(s.pad, data[n:])
671-
n += len(s.pad)
671+
n += 3
672672
copy(s.Name, data[n:])
673-
n += len(s.Name)
673+
n += MAX_TABLE_NAME_LEN
674674
s.Wildcards = binary.BigEndian.Uint32(data[n:])
675675
n += 4
676676
s.MaxEntries = binary.BigEndian.Uint32(data[n:])
@@ -790,7 +790,7 @@ func (s *PortStats) UnmarshalBinary(data []byte) error {
790790
s.PortNo = binary.BigEndian.Uint16(data[n:])
791791
n += 2
792792
copy(s.pad, data[n:])
793-
n += len(s.pad)
793+
n += 6
794794
s.RxPackets = binary.BigEndian.Uint64(data[n:])
795795
n += 8
796796
s.TxPackets = binary.BigEndian.Uint64(data[n:])
@@ -895,7 +895,7 @@ func (s *QueueStats) UnmarshalBinary(data []byte) error {
895895
s.PortNo = binary.BigEndian.Uint16(data[n:])
896896
n += 2
897897
copy(s.pad, data[n:])
898-
n += len(s.pad)
898+
n += 2
899899
s.QueueId = binary.BigEndian.Uint32(data[n:])
900900
n += 4
901901
s.TxBytes = binary.BigEndian.Uint64(data[n:])
@@ -952,7 +952,7 @@ func (s *PortStatus) UnmarshalBinary(data []byte) error {
952952
s.Reason = data[n]
953953
n += 1
954954
copy(s.pad, data[n:])
955-
n += len(s.pad)
955+
n += 7
956956

957957
err = s.Desc.UnmarshalBinary(data[n:])
958958
return err

openflow13/openflow13.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,8 @@ func (p *PacketOut) UnmarshalBinary(data []byte) error {
270270

271271
n += 6 // for pad
272272

273-
for n < (n + p.ActionsLen) {
273+
actionsBound := n + p.ActionsLen
274+
for n < actionsBound {
274275
a, err := DecodeAction(data[n:])
275276
if err != nil {
276277
return err
@@ -745,6 +746,7 @@ func (s *SwitchFeatures) UnmarshalBinary(data []byte) error {
745746
for next < len(data) {
746747
p := NewPhyPort()
747748
err = p.UnmarshalBinary(data[next:])
749+
s.Ports = append(s.Ports, *p)
748750
next += int(p.Len())
749751
}
750752
return err

0 commit comments

Comments
 (0)