diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2016-11-13 19:11:57 +0100 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2016-11-13 19:49:30 +0000 |
commit | a9626210f165aa9b9d4a3668ecfeb70784bd087f (patch) | |
tree | cf32467be757f5612874ba5f41b97231b3e97553 /epan/dissectors/packet-per.c | |
parent | 7f2a83892204821145768b76bbdd0719b57787f8 (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.c | 8 |
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; } |