diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2017-03-17 18:10:59 +0100 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2017-03-17 19:11:13 +0000 |
commit | 693a61e2d5d137680cc00940fb3e96bf9f73bdfb (patch) | |
tree | 1393522b2b9d3b4ca6a8d1bd3fea4680b4a40ff0 /epan/dissectors/asn1 | |
parent | 1e40b65d5b01f9d5fb05636f14f3d3769e541a56 (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.c | 6 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/s1ap.cnf | 3 |
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 = ¶meter_tvb tvbuff_t *parameter_tvb; |