Describe the contribution
Implement the encoding and decoding of CBOR containers as a loop. This permits the "error" flag to be easily polled after each iteration, and if it is ever set, the operation should exit safely.
This is important because after any encode/decode issue, the tiny CBOR state will no longer be in sync with the data, and this library may assert if invoked with a bad state object.
Fixes #245
Testing performed
Pass in unrecognized/non-conformant bundle and confirm decoding stops - no additional calls into TinyCBOR are made.
Expected behavior changes
No change of assertion inside TinyCBOR if called after codec state becomes invalid
System(s) tested on
Debian + TinyCBOR v0.60
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.
Describe the contribution Implement the encoding and decoding of CBOR containers as a loop. This permits the "error" flag to be easily polled after each iteration, and if it is ever set, the operation should exit safely.
This is important because after any encode/decode issue, the tiny CBOR state will no longer be in sync with the data, and this library may assert if invoked with a bad state object.
Fixes #245
Testing performed Pass in unrecognized/non-conformant bundle and confirm decoding stops - no additional calls into TinyCBOR are made.
Expected behavior changes No change of assertion inside TinyCBOR if called after codec state becomes invalid
System(s) tested on Debian + TinyCBOR v0.60
Contributor Info - All information REQUIRED for consideration of pull request Joseph Hickey, Vantage Systems, Inc.