aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-btl2cap.c
diff options
context:
space:
mode:
authorChris Maynard <Christopher.Maynard@GTECH.COM>2013-12-04 15:59:29 +0000
committerChris Maynard <Christopher.Maynard@GTECH.COM>2013-12-04 15:59:29 +0000
commita8ed2cf767939cb5d45056c7f5f94c33fa8e3873 (patch)
tree0a00367b3dcb09366c5c95c56602def95f4192b2 /epan/dissectors/packet-btl2cap.c
parent50989f30a303db66d02b3425afab0e6194701746 (diff)
From Michal Labedzki via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9446 - r53051 introduced an incorrect DISSECTOR_ASSERT(acl_data), which led me to believe that acl_data must not be NULL. Except for the removal of the DISSECTOR_ASSERT(acl_data), this patch basically reverts r53735 and r53743, as acl_data can be NULL.
svn path=/trunk/; revision=53784
Diffstat (limited to 'epan/dissectors/packet-btl2cap.c')
-rw-r--r--epan/dissectors/packet-btl2cap.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/epan/dissectors/packet-btl2cap.c b/epan/dissectors/packet-btl2cap.c
index b824c1748f..0fb4bf9e0e 100644
--- a/epan/dissectors/packet-btl2cap.c
+++ b/epan/dissectors/packet-btl2cap.c
@@ -1621,9 +1621,6 @@ dissect_btl2cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
bthci_acl_data_t *acl_data;
btl2cap_data_t *l2cap_data;
- /* Reject the packet if data is NULL */
- if (data == NULL)
- return 0;
acl_data = (bthci_acl_data_t *) data;
ti = proto_tree_add_item(tree, proto_btl2cap, tvb, offset, -1, ENC_NA);
@@ -1657,14 +1654,14 @@ dissect_btl2cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
l2cap_data = wmem_new(wmem_packet_scope(), btl2cap_data_t);
- l2cap_data->interface_id = acl_data->interface_id;
- l2cap_data->adapter_id = acl_data->adapter_id;
- l2cap_data->chandle = acl_data->chandle;
+ l2cap_data->interface_id = (acl_data) ? acl_data->interface_id : HCI_INTERFACE_AMP;
+ l2cap_data->adapter_id = (acl_data) ? acl_data->adapter_id : HCI_ADAPTER_DEFAULT;
+ l2cap_data->chandle = (acl_data) ? acl_data->chandle : 0;
l2cap_data->cid = cid;
l2cap_data->psm = 0;
l2cap_data->first_scid_frame = 0;
- l2cap_data->remote_bd_addr_oui = acl_data->remote_bd_addr_oui;
- l2cap_data->remote_bd_addr_id = acl_data->remote_bd_addr_id;
+ l2cap_data->remote_bd_addr_oui = (acl_data) ? acl_data->remote_bd_addr_oui : 0;
+ l2cap_data->remote_bd_addr_id = (acl_data) ? acl_data->remote_bd_addr_id : 0;
if (cid == BTL2CAP_FIXED_CID_SIGNAL || cid == BTL2CAP_FIXED_CID_LE_SIGNAL) {
/* This is a command packet*/
@@ -1862,9 +1859,9 @@ dissect_btl2cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
guint32 chandle;
guint32 key_cid;
- interface_id = acl_data->interface_id;
- adapter_id = acl_data->adapter_id;
- chandle = acl_data->chandle;
+ interface_id = (acl_data) ? acl_data->interface_id : HCI_INTERFACE_AMP;
+ adapter_id = (acl_data) ? acl_data->adapter_id : HCI_ADAPTER_DEFAULT;
+ chandle = (acl_data) ? acl_data->chandle : 0;
key_cid = cid | ((pinfo->p2p_dir == P2P_DIR_RECV) ? 0x00000000 : 0x80000000);
k_interface_id = interface_id;