diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-06-18 08:14:27 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2014-06-18 06:17:54 +0000 |
commit | 666127f5f9768d33095152047234ae2ebfcea9f5 (patch) | |
tree | fb74df44ab04c23e481c750d0d7dcee384b8fcf5 /epan/dissectors/packet-pdcp-lte.c | |
parent | 6aa1470f10acd5b8c68f2c007b991c28eafabfa5 (diff) |
PDCP LTE: do not try to decipher PDCP control messages (like ROHC feedback)
Change-Id: I4a1596fd45bbc78ed8e90accf69ac048e7053161
Reviewed-on: https://code.wireshark.org/review/2366
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-pdcp-lte.c')
-rw-r--r-- | epan/dissectors/packet-pdcp-lte.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/epan/dissectors/packet-pdcp-lte.c b/epan/dissectors/packet-pdcp-lte.c index 75a446b951..92be2e7235 100644 --- a/epan/dissectors/packet-pdcp-lte.c +++ b/epan/dissectors/packet-pdcp-lte.c @@ -1491,6 +1491,11 @@ static tvbuff_t *decipher_payload(tvbuff_t *tvb, packet_info *pinfo, int *offset return tvb; } + /* Don't decipher control messages */ + if ((plane == USER_PLANE) && ((tvb_get_guint8(tvb, 0) & 0x80) == 0x00)) { + return tvb; + } + /* Don't decipher if not yet past SecurityModeResponse */ if (!will_be_deciphered) { return tvb; @@ -1707,7 +1712,6 @@ static void dissect_pdcp_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree proto_tree *pdcp_tree = NULL; proto_item *root_ti = NULL; gint offset = 0; - gint rohc_offset; struct pdcp_lte_info *p_pdcp_info; tvbuff_t *rohc_tvb = NULL; @@ -2199,8 +2203,7 @@ static void dissect_pdcp_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree return; } - rohc_offset = offset; - rohc_tvb = tvb_new_subset_remaining(payload_tvb, rohc_offset); + rohc_tvb = tvb_new_subset_remaining(payload_tvb, offset); /* Only enable writing to column if configured to show ROHC */ if (global_pdcp_lte_layer_to_show != ShowTrafficLayer) { |