Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ipfix/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ def record_iterator(self,
offset += _sethdr_st.size # skip set header in decode
if setid == template.TEMPLATE_SET_ID or\
setid == template.OPTIONS_SET_ID:
while offset < setend:
while offset + 4 < setend: # allow for padding up to 4 byte alignment
(tmpl, offset) = template.decode_template_from(
self.mbuf, offset, setid)
# FIXME handle withdrawal
Expand Down Expand Up @@ -431,6 +431,7 @@ def record_iterator(self,
# KeyError on template lookup - unknown data set
self.unknown_data_set_hook(self,
self.mbuf[offset-_sethdr_st.size:setend])
offset = setend # real end may be greater that accumulated offset

def namedict_iterator(self):
"""
Expand Down
4 changes: 2 additions & 2 deletions ipfix/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ def decode_from(self, buf, offset, packplan = None):
offset += packplan.st.size

# short circuit on no varlen
if not self.varlenslice:
if self.varlenslice is None:
return (vals, offset)

# direct iteration over remaining IEs
Expand Down Expand Up @@ -239,7 +239,7 @@ def encode_to(self, buf, offset, vals, packplan = None):
offset += packplan.st.size

# shortcircuit no varlen
if not self.varlenslice:
if self.varlenslice is None:
return offset

# direct iteration over remaining IEs
Expand Down