diff options
author | Jeff Morriss <jeff.morriss.ws@gmail.com> | 2019-01-02 16:45:05 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2019-01-02 23:49:36 +0000 |
commit | 62e81562e4e3a33dad705b1b66a3407afbde3242 (patch) | |
tree | ed30e8fe20405c1505b7e7476f2794af1b05ecb6 | |
parent | 155f87f73c74d2b6a078a768f68372aeb1f548dd (diff) |
6lowpan: don't try to use (new) TVB that wasn't created.
If the IPHC TVB wasn't created then bail out of dissection before trying
to use it.
Bug: 15217
Change-Id: I6e297590cdf86e13b0185f75f1d409888f2498d8
Reviewed-on: https://code.wireshark.org/review/31308
Petri-Dish: Jeff Morriss <jeff.morriss.ws@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r-- | epan/dissectors/packet-6lowpan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c index a5e55c50e9..2a4429f353 100644 --- a/epan/dissectors/packet-6lowpan.c +++ b/epan/dissectors/packet-6lowpan.c @@ -1219,6 +1219,7 @@ dissect_6lowpan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data next = dissect_6lowpan_6loRH(next, offset, lowpan_tree); if (tvb_get_bits8(next, 0, LOWPAN_PATTERN_IPHC_BITS) == LOWPAN_PATTERN_IPHC) { next = dissect_6lowpan_iphc(next, pinfo, lowpan_tree, -1, src_iid, dst_iid); + if (!next) return tvb_captured_length(tvb); } if (tvb_get_bits8(next, 0, LOWPAN_PATTERN_HC1_BITS) == LOWPAN_PATTERN_HC1) { next = dissect_6lowpan_hc1(next, pinfo, lowpan_tree, -1, src_iid, dst_iid); @@ -1817,7 +1818,7 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg * siid ; Source Interface ID. * diid ; Destination Interface ID. * RETURNS - * tvbuff_t * ; The remaining payload to be parsed. + * tvbuff_t * ; The remaining payload to be parsed or NULL on error. *--------------------------------------------------------------- */ static tvbuff_t * |