aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rlc-lte.c
diff options
context:
space:
mode:
authormartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>2010-03-04 17:49:51 +0000
committermartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>2010-03-04 17:49:51 +0000
commit599b650c293e2a911a4d0b2344f54ac90965b8af (patch)
tree254a14196bfc9ac3e510146527923da20924948f /epan/dissectors/packet-rlc-lte.c
parent39103e001efdf4af17c5b69681f2b353f30f0014 (diff)
Check that we haven't gone over MAX_NACKs!
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@32115 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-rlc-lte.c')
-rw-r--r--epan/dissectors/packet-rlc-lte.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index 1284e68628..def894bc4f 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -566,6 +566,7 @@ static void addChannelSequenceInfo(state_sequence_analysis_report_in_frame *p,
/********************************************/
/* AM */
/********************************************/
+
switch (p->amState) {
case SN_OK:
ti = proto_tree_add_boolean(seqnum_tree, hf_rlc_lte_sequence_analysis_ok,
@@ -625,18 +626,20 @@ static void addChannelSequenceInfo(state_sequence_analysis_report_in_frame *p,
PROTO_ITEM_SET_GENERATED(ti);
if (p->lastSN != p->firstSN) {
expert_add_info_format(pinfo, ti, PI_SEQUENCE, PI_WARN,
- "AM SNs missing for %s on UE %u (%u to %u)",
+ "AM SNs (%u to %u) missing for %s on UE %u",
+ p->firstSN, p->lastSN,
val_to_str(p_rlc_lte_info->direction, direction_vals, "Unknown"),
- p_rlc_lte_info->ueid, p->firstSN, p->lastSN);
+ p_rlc_lte_info->ueid);
proto_item_append_text(seqnum_ti, " - SNs missing (%u to %u)",
p->firstSN, p->lastSN);
tap_info->missingSNs = ((p->lastSN - p->firstSN) % 1024) + 1;
}
else {
expert_add_info_format(pinfo, ti, PI_SEQUENCE, PI_WARN,
- "AM SN missing for %s on UE %u (%u)",
+ "AM SN (%u) missing for %s on UE %u",
+ p->firstSN,
val_to_str(p_rlc_lte_info->direction, direction_vals, "Unknown"),
- p_rlc_lte_info->ueid, p->firstSN);
+ p_rlc_lte_info->ueid);
proto_item_append_text(seqnum_ti, " - SN missing (%u)",
p->firstSN);
tap_info->missingSNs = 1;
@@ -1326,7 +1329,10 @@ static void dissect_rlc_lte_am_status_pdu(tvbuff_t *tvb,
bit_offset += 10;
col_append_fstr(pinfo->cinfo, COL_INFO, " NACK_SN=%u", (guint16)nack_sn);
proto_item_append_text(top_ti, " NACK_SN=%u", (guint16)nack_sn);
- tap_info->NACKs[nack_count++] = (guint16)nack_sn;
+ /* Copy into struct, but don't exceed buffer */
+ if (nack_count < MAX_NACKs) {
+ tap_info->NACKs[nack_count++] = (guint16)nack_sn;
+ }
/* E1 */
proto_tree_add_bits_ret_val(tree, hf_rlc_lte_am_e1, tvb,