add failing test for submsg type mismatch#78
Open
petermueller wants to merge 1 commit intobitwalker:masterfrom
Open
add failing test for submsg type mismatch#78petermueller wants to merge 1 commit intobitwalker:masterfrom
petermueller wants to merge 1 commit intobitwalker:masterfrom
Conversation
Owner
|
You mentioned that this is coming from gpb, did you open an issue there for this, if so, could you link to it here? In your reading of the code, did you see anything which we could potentially do to address this in exprotobuf directly? |
Author
|
I have not opened a PR with them, since from their docs it sounds like defaulting is a feature. In our original context we were doing something a little bit different than the typical usage, which we were able to work around by encoding and then decoding, and returning an |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I opened this PR after we noticed that some messages containing
AnyandOneOfmessages weren't being type checked if given incorrect values. After some poking, it seemed to be any nested messages.It also has the nasty issue that when it's decoded it looks like it populates optionals with their defaults recursively. I didn't show that in this PR as we saw it in proto3, but if you are unsure what I mean I can put together and comment with a sanitized example.
Ultimately, we were somewhat able to protect against this by calling an encode & decode on the message, and throwing an error if they aren't equal, but this was less than ideal, and requires communicating that caveat to any folks sending us messages as well.
Let me know what you think. We're slowly digging into the source for
gpbsince this seems like an issue with that, but I figured I'd start here.If you'd prefer this as an issue I can move it. I was just looking through the code anyway and figured I'd write a test.