diff options
author | Christophe GUERBER <christophe.guerber@gmail.com> | 2018-12-18 00:14:24 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-12-18 06:23:06 +0000 |
commit | 04b8558f7dd584ff19b5dfc5f45ecbcefa2edb8d (patch) | |
tree | 36af8725e2a1a22b8f02caf32e914993eb7b4ee3 /epan/dissectors | |
parent | eb4bf22de3c09c17dd836b0f6eb7cdfc283e4e93 (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>
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-per.c | 2 |
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) { |