diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2016-01-15 16:14:12 +0100 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2016-01-15 19:58:52 +0000 |
commit | a9e126a617d46af80be7e8b258c5ddfcb82a5637 (patch) | |
tree | bc9fcd7f7293a458e9ad5c41d65f96900fa8a295 /epan/dissectors/packet-atm.c | |
parent | bebb63bea9cf58665a31c78abcbbe82658b1e49d (diff) |
ATM: do not try to dissect if pseudo header is not present
Bug: 12013
Change-Id: If753fcdbb01d646fc4db43485549e8c6f668eced
Reviewed-on: https://code.wireshark.org/review/13311
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-atm.c')
-rw-r--r-- | epan/dissectors/packet-atm.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/epan/dissectors/packet-atm.c b/epan/dissectors/packet-atm.c index 381bd0dd93..c60bda7dbb 100644 --- a/epan/dissectors/packet-atm.c +++ b/epan/dissectors/packet-atm.c @@ -1644,6 +1644,10 @@ dissect_atm_truncated(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void { struct atm_phdr *atm_info = (struct atm_phdr *)data; + if (!atm_info) { + return 0; + } + return dissect_atm_common(tvb, pinfo, tree, TRUE, atm_info, FALSE); } @@ -1652,6 +1656,10 @@ dissect_atm_pw_truncated(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo { struct atm_phdr *atm_info = (struct atm_phdr *)data; + if (!atm_info) { + return 0; + } + return dissect_atm_common(tvb, pinfo, tree, TRUE, atm_info, TRUE); } @@ -1660,6 +1668,10 @@ dissect_atm_untruncated(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi { struct atm_phdr *atm_info = (struct atm_phdr *)data; + if (!atm_info) { + return 0; + } + return dissect_atm_common(tvb, pinfo, tree, FALSE, atm_info, FALSE); } @@ -1668,6 +1680,10 @@ dissect_atm_pw_untruncated(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, { struct atm_phdr *atm_info = (struct atm_phdr *)data; + if (!atm_info) { + return 0; + } + return dissect_atm_common(tvb, pinfo, tree, FALSE, atm_info, TRUE); } |