summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-btl2cap.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2008-11-12 12:38:16 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2008-11-12 12:38:16 +0000
commitdf82e1043a18c95eafe4aefc239946d047b36412 (patch)
tree98710a2bb6cbfd4d8644bbb90e88a66e60a051f5 /epan/dissectors/packet-btl2cap.c
parenta31012717f60c3875882b11d756ca9a2d752d1d0 (diff)
downloadwireshark-df82e1043a18c95eafe4aefc239946d047b36412.tar.gz
Avoid crash when unable to lookup psm_data before calling dissect_options().
Removed an unused argument. This fixes bug 3054. svn path=/trunk/; revision=26759
Diffstat (limited to 'epan/dissectors/packet-btl2cap.c')
-rw-r--r--epan/dissectors/packet-btl2cap.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/epan/dissectors/packet-btl2cap.c b/epan/dissectors/packet-btl2cap.c
index 3367e4d8cb..95d3596215 100644
--- a/epan/dissectors/packet-btl2cap.c
+++ b/epan/dissectors/packet-btl2cap.c
@@ -304,7 +304,7 @@ dissect_connrequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
static int
-dissect_options(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int length, psm_data_t *psm_data _U_, config_data_t *config_data)
+dissect_options(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int length, config_data_t *config_data)
{
proto_item *ti_option=NULL;
proto_tree *ti_option_subtree=NULL;
@@ -420,11 +420,14 @@ dissect_configrequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_t
offset+=2;
if(tvb_length_remaining(tvb, offset)){
- if(pinfo->p2p_dir==P2P_DIR_RECV)
- config_data = &(psm_data->out);
+ if (psm_data)
+ if(pinfo->p2p_dir==P2P_DIR_RECV)
+ config_data = &(psm_data->out);
+ else
+ config_data = &(psm_data->in);
else
- config_data = &(psm_data->in);
- offset=dissect_options(tvb, offset, pinfo, tree, length - 4, psm_data, config_data);
+ config_data = NULL;
+ offset=dissect_options(tvb, offset, pinfo, tree, length - 4, config_data);
}
return offset;
@@ -511,11 +514,14 @@ dissect_configresponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_
offset+=2;
if(tvb_length_remaining(tvb, offset)){
- if(pinfo->p2p_dir==P2P_DIR_RECV)
- config_data = &(psm_data->in);
+ if (psm_data)
+ if(pinfo->p2p_dir==P2P_DIR_RECV)
+ config_data = &(psm_data->out);
+ else
+ config_data = &(psm_data->in);
else
- config_data = &(psm_data->out);
- offset=dissect_options(tvb, offset, pinfo, tree, length - 6, psm_data, config_data);
+ config_data = NULL;
+ offset=dissect_options(tvb, offset, pinfo, tree, length - 6, config_data);
}
return offset;