Switch serde_cbor to fork to allow unsafe unchecked utf8 deserialization #745
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.
Summary of changes
Changes introduced in this pull request:
DealProposal
. Although it is unused, we need to be able to (de)serialize the bytes as a string.This should absolutely be a temporary solution, and be removed after this bug is removed from the protocol.
The benefit to the fork, however, is that we can add the serialization length limits that they do in the go implementation (and therefore part of the spec)
There is an alternative to this that I was considering, which is on deserialization if the bytes are not utf8, deserialize the data as bytes instead. This is also a simple solution but to me seemed to give unintended side effects and also requires a custom type and deserialization to unsafely convert the bytes to str before serializing. Technically this way is more safe, because no non utf8 bytes are left as string outside of serialization, but is logically confusing and inconsistent.
Reference issue to close (if applicable)
Closes
Other information and links