aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe GUERBER <christophe.guerber@gmail.com>2018-12-18 00:14:24 +0100
committerAnders Broman <a.broman58@gmail.com>2018-12-18 06:23:06 +0000
commit04b8558f7dd584ff19b5dfc5f45ecbcefa2edb8d (patch)
tree36af8725e2a1a22b8f02caf32e914993eb7b4ee3
parenteb4bf22de3c09c17dd836b0f6eb7cdfc283e4e93 (diff)
Do not create a tvbuff on zero-length open type
When decoding an open type in ASN.1/PER and the content length is zero, do not try to create a buffer. Doing so triggers an error in tvbuff.c. Ping-Bug: 15148 Change-Id: If892e8c6a84cdfb268e3f6c50af0f7e30a89c59b Reviewed-on: https://code.wireshark.org/review/31088 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/packet-per.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index dc5026b13f..dd5ceee164 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -203,6 +203,8 @@ dissect_per_open_type_internal(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx,
if (fragmented_length) {
val_tvb = pdu_tvb;
} else {
+ if (!pdu_length)
+ return end_offset;
val_tvb = tvb_new_octet_aligned(pdu_tvb, pdu_offset, pdu_length * 8);
/* Add new data source if the offet was unaligned */
if ((pdu_offset & 7) != 0) {