aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2017-03-17 18:10:59 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2017-03-17 19:11:13 +0000
commit693a61e2d5d137680cc00940fb3e96bf9f73bdfb (patch)
tree1393522b2b9d3b4ca6a8d1bd3fea4680b4a40ff0 /epan/dissectors/asn1
parent1e40b65d5b01f9d5fb05636f14f3d3769e541a56 (diff)
S1AP: fix dissection of Reroute NAS Request message
The S1 Message information element contains a full S1AP PDU, not only the Initial UE Message payload Change-Id: Ibf416ea45efbd65b341ba3ce1cc5b02b0747f46b Reviewed-on: https://code.wireshark.org/review/20595 Petri-Dish: Pascal Quantin <pascal.quantin@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/asn1')
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c6
-rw-r--r--epan/dissectors/asn1/s1ap/s1ap.cnf3
2 files changed, 7 insertions, 2 deletions
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
index 44b6b0dec5..9d4e36f4df 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -412,10 +412,14 @@ dissect_s1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
proto_tree *s1ap_tree = NULL;
conversation_t *conversation;
struct s1ap_private_data* s1ap_data;
+ wmem_list_frame_t *prev_layer;
/* make entry in the Protocol column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, "S1AP");
- col_clear_fence(pinfo->cinfo, COL_INFO);
+ /* ensure that parent dissector is not S1AP before clearing fence */
+ prev_layer = wmem_list_frame_prev(wmem_list_tail(pinfo->layers));
+ if (prev_layer && GPOINTER_TO_INT(wmem_list_frame_data(prev_layer)) != proto_s1ap)
+ col_clear_fence(pinfo->cinfo, COL_INFO);
col_clear(pinfo->cinfo, COL_INFO);
/* create the s1ap protocol tree */
diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf
index f99cf1ffbc..9fd4804486 100644
--- a/epan/dissectors/asn1/s1ap/s1ap.cnf
+++ b/epan/dissectors/asn1/s1ap/s1ap.cnf
@@ -738,7 +738,8 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_S1_Message);
- dissect_InitialUEMessage_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ col_set_fence(actx->pinfo->cinfo, COL_INFO);
+ call_dissector(s1ap_handle, parameter_tvb, actx->pinfo, subtree);
#.FN_BODY E-UTRAN-Trace-ID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;