Fix leaking field name text in IonCursorBinary #859
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available:
None
Description of changes:
There is a bug that I discovered where Ion 1.1 binary data such as
E0 01 01 EA FD 0F 01 FF 61 D3 09 A1 62
(equivalent to$ion_1_1 {a:{$4:b}}
) is interpreted incorrectly. The field text froma
was not properly being reset and was leaking into the next field name, so that even though$4
was being parsed correctly the reader would see that field text was available and return that instead. I was only able to reproduce this for cases such as mentioned above where there is a field name with inline text and then the first nested field inside that value is a SID field name.The bug was fixed by clearing
fieldTextMarker
in thereset()
method. Since this is the second such bug I've found related to things not being cleared in thereset()
method, I also decided to preemptively add a few more things to thereset()
method in the hopes that it will spare us from some obscure problem in the future.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.