aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-per.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2016-11-13 19:11:57 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2016-11-13 19:49:30 +0000
commita9626210f165aa9b9d4a3668ecfeb70784bd087f (patch)
treecf32467be757f5612874ba5f41b97231b3e97553 /epan/dissectors/packet-per.c
parent7f2a83892204821145768b76bbdd0719b57787f8 (diff)
PER: fixes for fragmented bitstring
Follow-up of g54c3df8: - fix byte highlighting - return correct offset - return correct length Change-Id: Ib689ea72706c2e1d697c0e8f619b1b846c088001 Reviewed-on: https://code.wireshark.org/review/18803 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/packet-per.c')
-rw-r--r--epan/dissectors/packet-per.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index 06b4ad5101..601634e9f5 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -2165,10 +2165,10 @@ DEBUG_ENTRY("dissect_per_bit_string");
if(fragmented_length){
if(length){
tvb_composite_append(fragmented_tvb, tvb_new_octet_aligned(tvb, offset, length));
- offset += length;
fragmented_length += length;
}
tvb_composite_finalize(fragmented_tvb);
+ add_new_data_source(actx->pinfo, fragmented_tvb, "Fragmented bitstring tvb");
out_tvb = dissect_per_bit_string_display(fragmented_tvb, 0, actx, tree, hf_index, hfi,
fragmented_length);
}
@@ -2183,7 +2183,7 @@ DEBUG_ENTRY("dissect_per_bit_string");
if (value_tvb)
*value_tvb = out_tvb;
if (len)
- *len = length;
+ *len = fragmented_length ? fragmented_length : length;
return offset;
}
@@ -2244,10 +2244,10 @@ DEBUG_ENTRY("dissect_per_bit_string");
if(fragmented_length){
if(length){
tvb_composite_append(fragmented_tvb, tvb_new_octet_aligned(tvb, offset, length));
- offset += length;
fragmented_length += length;
}
tvb_composite_finalize(fragmented_tvb);
+ add_new_data_source(actx->pinfo, fragmented_tvb, "Fragmented bitstring tvb");
out_tvb = dissect_per_bit_string_display(fragmented_tvb, 0, actx, tree, hf_index, hfi,
fragmented_length);
}
@@ -2262,7 +2262,7 @@ DEBUG_ENTRY("dissect_per_bit_string");
if (value_tvb)
*value_tvb = out_tvb;
if (len)
- *len = length;
+ *len = fragmented_length ? fragmented_length : length;
return offset;
}