diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2011-11-16 08:55:02 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2011-11-16 08:55:02 +0000 |
commit | bc5301e1143f66fd7ae34a5f49a7e4dc64b13783 (patch) | |
tree | 6e364ec9dd98925d97a36d4e0340d966803cdbfb /epan/dissectors/packet-per.c | |
parent | f3c5620c3bef55257ef79ad3d2eafdb7a42f864b (diff) |
Fix handling of empty OpenType at the end of PDU
svn path=/trunk/; revision=39880
Diffstat (limited to 'epan/dissectors/packet-per.c')
-rw-r--r-- | epan/dissectors/packet-per.c | 4 |
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); |