summaryrefslogtreecommitdiff
path: root/epan
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2011-11-16 08:55:02 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2011-11-16 08:55:02 +0000
commitbc5301e1143f66fd7ae34a5f49a7e4dc64b13783 (patch)
tree6e364ec9dd98925d97a36d4e0340d966803cdbfb /epan
parentf3c5620c3bef55257ef79ad3d2eafdb7a42f864b (diff)
downloadwireshark-bc5301e1143f66fd7ae34a5f49a7e4dc64b13783.tar.gz
Fix handling of empty OpenType at the end of PDU
svn path=/trunk/; revision=39880
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-per.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index 6de3fcc16e..c5b8302cba 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -1892,11 +1892,11 @@ DEBUG_ENTRY("dissect_per_sequence");
if(sequence[extension_index].func){
new_offset=sequence[extension_index].func(tvb, offset, actx, tree, *sequence[extension_index].p_id);
- if (new_offset == offset) new_offset += 8; /* OpenType has at least 1 octet */
offset+=length*8;
difference = offset - new_offset;
/* A difference of 7 or less might be byte aligning */
- if(difference > 7){
+ /* Difference could be 8 if open type has no bits and the length is 1 */
+ if ((length > 1) && (difference > 7)) {
cause=proto_tree_add_text(tree, tvb, new_offset>>3, (offset-new_offset)>>3,
"[Possible encoding error full length not decoded. Open type length %u ,decoded %u]",length, length - (difference>>3));
proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);