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>
This commit is contained in:
Pascal Quantin 2014-06-18 08:14:27 +02:00
parent 6aa1470f10
commit 666127f5f9
1 changed files with 6 additions and 3 deletions

View File

@ -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) {