aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-pdcp-lte.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2014-06-18 08:14:27 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2014-06-18 06:17:54 +0000
commit666127f5f9768d33095152047234ae2ebfcea9f5 (patch)
treefb74df44ab04c23e481c750d0d7dcee384b8fcf5 /epan/dissectors/packet-pdcp-lte.c
parent6aa1470f10acd5b8c68f2c007b991c28eafabfa5 (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.c9
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) {