diff options
author | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2013-12-04 15:59:29 +0000 |
---|---|---|
committer | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2013-12-04 15:59:29 +0000 |
commit | a8ed2cf767939cb5d45056c7f5f94c33fa8e3873 (patch) | |
tree | 0a00367b3dcb09366c5c95c56602def95f4192b2 /epan/dissectors/packet-btl2cap.c | |
parent | 50989f30a303db66d02b3425afab0e6194701746 (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.c | 19 |
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; |