nasa / bplib

Apache License 2.0
27 stars 13 forks source link

Fix #245, implement safer codec loops #254

Closed jphickey closed 12 months ago

jphickey commented 1 year ago

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.

jphickey commented 12 months ago

Reviewed and approved at 2023-09-27 CCB